mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-09 06:33:34 +00:00
btrfs: push extent lock down in submit_one_async_extent
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. Reviewed-by: Goldwyn Rodrigues <rgoldwyn@suse.com> Signed-off-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
d456c25dbb
commit
8325f41a56
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user