Message ID | 24251ec51aaea6cd39b22e3969d4e8e2a878808d.1713363472.git.josef@toxicpanda.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | btrfs: restrain lock extent usage during writeback | expand |
On 10:36 17/04, Josef Bacik wrote: > We don't need to include the time we spend in the allocator under our > extent lock protection, move it after the allocator and make sure we > lock the extent in the error case to ensure we're not clearing these > bits without the extent lock held. > > Signed-off-by: Josef Bacik <josef@toxicpanda.com> Looks good. Reviewed-by: Goldwyn Rodrigues <rgoldwyn@suse.com>
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 3cd092fab31d..a96f68f61495 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -1179,7 +1179,6 @@ static void submit_one_async_extent(struct async_chunk *async_chunk, goto done; } - lock_extent(io_tree, start, end, NULL); ret = btrfs_reserve_extent(root, async_extent->ram_size, async_extent->compressed_size, async_extent->compressed_size, @@ -1195,6 +1194,8 @@ static void submit_one_async_extent(struct async_chunk *async_chunk, goto done; } + lock_extent(io_tree, start, end, NULL); + /* Here we're doing allocation and writeback of the compressed pages */ em = create_io_em(inode, start, async_extent->ram_size, /* len */
We don't need to include the time we spend in the allocator under our extent lock protection, move it after the allocator and make sure we lock the extent in the error case to ensure we're not clearing these bits without the extent lock held. Signed-off-by: Josef Bacik <josef@toxicpanda.com> --- fs/btrfs/inode.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)