diff options
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; |