btrfs: use cached state when falling back from NOCoW write to CoW write

We have a cached extent state record from the previous extent locking so
we can use when setting the EXTENT_NORESERVE in the range, allowing the
operation to be faster if the extent io tree is relatively large.

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>
This commit is contained in:
Filipe Manana 2025-07-11 09:23:09 +01:00 committed by David Sterba
parent bfc9d71aa4
commit 279b4db10e

View File

@ -1754,7 +1754,8 @@ static int fallback_to_cow(struct btrfs_inode *inode,
spin_unlock(&sinfo->lock);
if (count > 0)
btrfs_clear_extent_bits(io_tree, start, end, EXTENT_NORESERVE);
btrfs_clear_extent_bit(io_tree, start, end, EXTENT_NORESERVE,
&cached_state);
}
btrfs_unlock_extent(io_tree, start, end, &cached_state);