From: Filipe Manana Date: Fri, 11 Jul 2025 08:23:09 +0000 (+0100) Subject: btrfs: use cached state when falling back from NOCoW write to CoW write X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=279b4db10e46a31c7cd8161c1a5d7dc4c423b028;p=thirdparty%2Flinux.git 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 Signed-off-by: Filipe Manana Reviewed-by: David Sterba Signed-off-by: David Sterba --- diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 6aa1e66448fa5..6781956197c70 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -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);