]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
btrfs: do not free data reservation in fallback from inline due to -ENOSPC
authorFilipe Manana <fdmanana@suse.com>
Fri, 12 Dec 2025 17:10:10 +0000 (17:10 +0000)
committerDavid Sterba <dsterba@suse.com>
Tue, 16 Dec 2025 21:53:15 +0000 (22:53 +0100)
commitf8da41de0bff9eb1d774a7253da0c9f637c4470a
tree05f13ee120f730eb572cd273b5dbfc2ddc7cee95
parent83f59076a1ae6f5c6845d6f7ed3a1a373d883684
btrfs: do not free data reservation in fallback from inline due to -ENOSPC

If we fail to create an inline extent due to -ENOSPC, we will attempt to
go through the normal COW path, reserve an extent, create an ordered
extent, etc. However we were always freeing the reserved qgroup data,
which is wrong since we will use data. Fix this by freeing the reserved
qgroup data in __cow_file_range_inline() only if we are not doing the
fallback (ret is <= 0).

Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/inode.c