diff options
author | 2025-07-11 09:23:09 +0100 | |
---|---|---|
committer | 2025-07-22 00:09:22 +0200 | |
commit | 279b4db10e46a31c7cd8161c1a5d7dc4c423b028 (patch) | |
tree | 8903b298215e3703baa7e0f6b14bdd99336cc727 | |
parent | btrfs: set EXTENT_NORESERVE before range unlock in btrfs_truncate_block() (diff) | |
download | wireguard-linux-279b4db10e46a31c7cd8161c1a5d7dc4c423b028.tar.xz wireguard-linux-279b4db10e46a31c7cd8161c1a5d7dc4c423b028.zip |
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>
-rw-r--r-- | fs/btrfs/inode.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 6aa1e66448fa..6781956197c7 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); |