Btrfs: fix missing reserved space release in error path of delalloc reservation
PATCH 2/6 Btrfs: fix missing reserved space release in error path of delalloc reservation
We forget to release the reserved space in the error path of delalloc reservatiom, fix it.
Signed-off-by Miao Xie <[email protected]>
--- fs/btrfs/extent-tree.c | 7 +++++++ 1 file changed, 7 insertions(+)
fs/btrfs/extent-tree.c +7 -0
@@ -4572,6 +4572,9 @@ int btrfs_delalloc_reserve_metadata(struct inode *inode, u64 num_bytes) ret =btrfs_qgroup_reserve (root, num_bytes + nr_extents * root->leafsize);if (ret) { +spin_lock (&BTRFS_I (inode)->lock); +calc_csum_metadata_size (inode, num_bytes,0 ); +spin_unlock (&BTRFS_I (inode)->lock);mutex_unlock (&BTRFS_I (inode)->delalloc_mutex);return ret; }
@@ -4607,6 +4610,10 @@ int btrfs_delalloc_reserve_metadata(struct inode *inode, u64 num_bytes)btrfs_ino (inode), to_free, 0); } +if (root->fs_info->quota_enabled) { +btrfs_qgroup_free (root, num_bytes + + nr_extents * root->leafsize); + }mutex_unlock (&BTRFS_I (inode)->delalloc_mutex);return ret; }
Signature · 1 line
1.7.11.7