]> git.baikalelectronics.ru Git - kernel.git/commit
btrfs: fix inode reserve space leak due to nowait buffered write
authorFilipe Manana <fdmanana@suse.com>
Wed, 2 Nov 2022 12:46:36 +0000 (12:46 +0000)
committerDavid Sterba <dsterba@suse.com>
Wed, 2 Nov 2022 16:44:45 +0000 (17:44 +0100)
commit6fa9c392640785f81d574b8143dd3a10696fb0e5
treecf1bce6e7a525a86fb8578a0bbeb7dba9dc79de8
parent14b1c2651f2b0606e2f200d491294698ec385da1
btrfs: fix inode reserve space leak due to nowait buffered write

During a nowait buffered write, if we fail to balance dirty pages we exit
btrfs_buffered_write() without releasing the delalloc space reserved for
an extent, resulting in leaking space from the inode's block reserve.

So fix that by releasing the delalloc space for the extent when balancing
dirty pages fails.

Reported-by: kernel test robot <yujie.liu@intel.com>
Link: https://lore.kernel.org/all/202210111304.d369bc32-yujie.liu@intel.com
Fixes: 2c139ff2ffd8 ("btrfs: make btrfs_buffered_write nowait compatible")
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/file.c