}
 
 static int btrfs_delayed_item_reserve_metadata(struct btrfs_trans_handle *trans,
-                                              struct btrfs_root *root,
                                               struct btrfs_delayed_item *item)
 {
        struct btrfs_block_rsv *src_rsv;
        struct btrfs_block_rsv *dst_rsv;
-       struct btrfs_fs_info *fs_info = root->fs_info;
+       struct btrfs_fs_info *fs_info = trans->fs_info;
        u64 num_bytes;
        int ret;
 
        }
 
        if (reserve_leaf_space) {
-               ret = btrfs_delayed_item_reserve_metadata(trans, dir->root,
-                                                         delayed_item);
+               ret = btrfs_delayed_item_reserve_metadata(trans, delayed_item);
                /*
                 * Space was reserved for a dir index item insertion when we
                 * started the transaction, so getting a failure here should be
        item->key = item_key;
        item->ins_or_del = BTRFS_DELAYED_DELETION_ITEM;
 
-       ret = btrfs_delayed_item_reserve_metadata(trans, dir->root, item);
+       ret = btrfs_delayed_item_reserve_metadata(trans, item);
        /*
         * we have reserved enough space when we start a new transaction,
         * so reserving metadata failure is impossible.