btrfs-progs: make the find extent buffer helpers take fs_info

This is a cleanup patch to make syncing the btrfs kernel code into
btrfs-progs easier.  In btrfs-progs we have an extra cache in the
extent_io_tree that's exclusively used for the extent buffer tracking.
In order to untangle this dependency start passing around the fs_info to
search for extent_buffers, and then have the helpers use the appropriate
structure to find the extent buffer.

Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
Josef Bacik 2022-11-23 17:37:22 -05:00 committed by David Sterba
parent d729048be6
commit af30cf2e3e
4 changed files with 9 additions and 8 deletions

View file

@ -227,8 +227,7 @@ static int csum_tree_block(struct btrfs_fs_info *fs_info,
struct extent_buffer *btrfs_find_tree_block(struct btrfs_fs_info *fs_info,
u64 bytenr, u32 blocksize)
{
return find_extent_buffer(&fs_info->extent_cache,
bytenr, blocksize);
return find_extent_buffer(fs_info, bytenr, blocksize);
}
struct extent_buffer* btrfs_find_create_tree_block(

View file

@ -683,9 +683,10 @@ void free_extent_buffer_nocache(struct extent_buffer *eb)
free_extent_buffer_internal(eb, 1);
}
struct extent_buffer *find_extent_buffer(struct extent_io_tree *tree,
struct extent_buffer *find_extent_buffer(struct btrfs_fs_info *fs_info,
u64 bytenr, u32 blocksize)
{
struct extent_io_tree *tree = &fs_info->extent_cache;
struct extent_buffer *eb = NULL;
struct cache_extent *cache;
@ -699,9 +700,10 @@ struct extent_buffer *find_extent_buffer(struct extent_io_tree *tree,
return eb;
}
struct extent_buffer *find_first_extent_buffer(struct extent_io_tree *tree,
struct extent_buffer *find_first_extent_buffer(struct btrfs_fs_info *fs_info,
u64 start)
{
struct extent_io_tree *tree = &fs_info->extent_cache;
struct extent_buffer *eb = NULL;
struct cache_extent *cache;

View file

@ -129,9 +129,9 @@ static inline int extent_buffer_uptodate(struct extent_buffer *eb)
int set_state_private(struct extent_io_tree *tree, u64 start, u64 xprivate);
int get_state_private(struct extent_io_tree *tree, u64 start, u64 *xprivate);
struct extent_buffer *find_extent_buffer(struct extent_io_tree *tree,
struct extent_buffer *find_extent_buffer(struct btrfs_fs_info *fs_info,
u64 bytenr, u32 blocksize);
struct extent_buffer *find_first_extent_buffer(struct extent_io_tree *tree,
struct extent_buffer *find_first_extent_buffer(struct btrfs_fs_info *fs_info,
u64 start);
struct extent_buffer *alloc_extent_buffer(struct btrfs_fs_info *fs_info,
u64 bytenr, u32 blocksize);

View file

@ -150,7 +150,7 @@ again:
goto again;
while(start <= end) {
eb = find_first_extent_buffer(tree, start);
eb = find_first_extent_buffer(fs_info, start);
BUG_ON(!eb || eb->start != start);
ret = write_tree_block(trans, fs_info, eb);
if (ret < 0) {
@ -180,7 +180,7 @@ cleanup:
break;
while (start <= end) {
eb = find_first_extent_buffer(tree, start);
eb = find_first_extent_buffer(fs_info, start);
BUG_ON(!eb || eb->start != start);
start += eb->len;
clear_extent_buffer_dirty(eb);