diff options
author | Qu Wenruo <quwenruo@cn.fujitsu.com> | 2017-05-18 10:51:08 +0800 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2017-07-03 13:35:11 +0200 |
commit | 8690c887d1dcad384d44ca21bf950a4ec2fbffdb (patch) | |
tree | bf736b51824e4e834c4d0e8ea79169bf40849d04 /image/main.c | |
parent | 060c7b3a1a40d2e9cacbdb37a02791bacae32491 (diff) |
btrfs-progs: Refactor read_tree_block to get rid of btrfs_root
The only reasom read_tree_block() needs a btrfs_root parameter is to get
its node/sector size.
And long ago, I have already introduced a compactible interface,
read_tree_block_fs_info() to pass btrfs_fs_info instead of btrfs_root.
Since we have cleaned up all root->sector/node/stripesize users, we
should be OK to refactor read_tree_block() function.
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Diffstat (limited to 'image/main.c')
-rw-r--r-- | image/main.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/image/main.c b/image/main.c index 33b5614e..5fb62e77 100644 --- a/image/main.c +++ b/image/main.c @@ -973,7 +973,8 @@ static int flush_pending(struct metadump_struct *md, int done) while (!md->data && size > 0) { u64 this_read = min(blocksize, size); - eb = read_tree_block(md->root, start, this_read, 0); + eb = read_tree_block(md->root->fs_info, start, + this_read, 0); if (!extent_buffer_uptodate(eb)) { free(async->buffer); free(async); @@ -1077,13 +1078,14 @@ static int copy_tree_blocks(struct btrfs_root *root, struct extent_buffer *eb, struct extent_buffer *tmp; struct btrfs_root_item *ri; struct btrfs_key key; + struct btrfs_fs_info *fs_info = root->fs_info; u64 bytenr; int level; int nritems = 0; int i = 0; int ret; - ret = add_extent(btrfs_header_bytenr(eb), root->fs_info->nodesize, + ret = add_extent(btrfs_header_bytenr(eb), fs_info->nodesize, metadump, 0); if (ret) { error("unable to add metadata block %llu: %d", @@ -1103,8 +1105,8 @@ static int copy_tree_blocks(struct btrfs_root *root, struct extent_buffer *eb, continue; ri = btrfs_item_ptr(eb, i, struct btrfs_root_item); bytenr = btrfs_disk_root_bytenr(eb, ri); - tmp = read_tree_block(root, bytenr, - root->fs_info->nodesize, 0); + tmp = read_tree_block(fs_info, bytenr, + fs_info->nodesize, 0); if (!extent_buffer_uptodate(tmp)) { error("unable to read log root block"); return -EIO; @@ -1115,8 +1117,8 @@ static int copy_tree_blocks(struct btrfs_root *root, struct extent_buffer *eb, return ret; } else { bytenr = btrfs_node_blockptr(eb, i); - tmp = read_tree_block(root, bytenr, - root->fs_info->nodesize, 0); + tmp = read_tree_block(fs_info, bytenr, + fs_info->nodesize, 0); if (!extent_buffer_uptodate(tmp)) { error("unable to read log root block"); return -EIO; |