diff options
Diffstat (limited to 'fs/btrfs/inode-map.c')
-rw-r--r-- | fs/btrfs/inode-map.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/btrfs/inode-map.c b/fs/btrfs/inode-map.c index 5c6c20ec64d8..66003fa79935 100644 --- a/fs/btrfs/inode-map.c +++ b/fs/btrfs/inode-map.c @@ -400,6 +400,7 @@ int btrfs_save_ino_cache(struct btrfs_root *root, struct btrfs_path *path; struct inode *inode; struct btrfs_block_rsv *rsv; + struct extent_changeset data_reserved; u64 num_bytes; u64 alloc_hint = 0; int ret; @@ -419,6 +420,8 @@ int btrfs_save_ino_cache(struct btrfs_root *root, if (!btrfs_test_opt(fs_info, INODE_MAP_CACHE)) return 0; + extent_changeset_init(&data_reserved); + path = btrfs_alloc_path(); if (!path) return -ENOMEM; @@ -492,7 +495,7 @@ again: /* Just to make sure we have enough space */ prealloc += 8 * PAGE_SIZE; - ret = btrfs_delalloc_reserve_space(inode, 0, prealloc); + ret = btrfs_delalloc_reserve_space(inode, &data_reserved, 0, prealloc); if (ret) goto out_put; @@ -516,6 +519,7 @@ out: trans->bytes_reserved = num_bytes; btrfs_free_path(path); + extent_changeset_release(&data_reserved); return ret; } |