From: Josef Bacik Date: Mon, 12 Feb 2024 21:59:43 +0000 (-0500) Subject: btrfs: remove unlock_extent from run_delalloc_compressed X-Git-Tag: io_uring-6.10-20240523~95^2~14 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=0e128d4e41735b37d9450b4e622b427189afb191;p=linux-block.git btrfs: remove unlock_extent from run_delalloc_compressed Since we immediately unlock the extent range when we enter run_delalloc_compressed() simply move the lock_extent() down to cover cow_file_range() and then remove the unlock_extent() from run_delalloc_compressed. Reviewed-by: Goldwyn Rodrigues Signed-off-by: Josef Bacik Signed-off-by: David Sterba --- diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 7c4ebe061abb..5337b54148e3 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -1642,7 +1642,6 @@ static bool run_delalloc_compressed(struct btrfs_inode *inode, if (!ctx) return false; - unlock_extent(&inode->io_tree, start, end, NULL); set_bit(BTRFS_INODE_HAS_ASYNC_EXTENT, &inode->runtime_flags); async_chunk = ctx->chunks; @@ -2276,16 +2275,16 @@ int btrfs_run_delalloc_range(struct btrfs_inode *inode, struct page *locked_page goto out; } - /* - * We're unlocked by the different fill functions below. - */ - lock_extent(&inode->io_tree, start, end, NULL); - if (btrfs_inode_can_compress(inode) && inode_need_compress(inode, start, end) && run_delalloc_compressed(inode, locked_page, start, end, wbc)) return 1; + /* + * We're unlocked by the different fill functions below. + */ + lock_extent(&inode->io_tree, start, end, NULL); + if (zoned) ret = run_delalloc_cow(inode, locked_page, start, end, wbc, true);