btrfs-progs: Refactor write_tree_block to use btrfs_fs_info

Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
master
Qu Wenruo 2017-06-13 17:19:22 +08:00 committed by David Sterba
parent 790b5950f3
commit f85fc6e378
3 changed files with 13 additions and 12 deletions

View File

@ -111,7 +111,7 @@ static int change_header_uuid(struct btrfs_root *root, struct extent_buffer *eb)
write_extent_buffer(eb, fs_info->new_chunk_tree_uuid, write_extent_buffer(eb, fs_info->new_chunk_tree_uuid,
btrfs_header_chunk_tree_uuid(eb), btrfs_header_chunk_tree_uuid(eb),
BTRFS_UUID_SIZE); BTRFS_UUID_SIZE);
ret = write_tree_block(NULL, root, eb); ret = write_tree_block(NULL, fs_info, eb);
return ret; return ret;
} }
@ -193,7 +193,7 @@ static int change_device_uuid(struct btrfs_root *root, struct extent_buffer *eb,
write_extent_buffer(eb, fs_info->new_fsid, write_extent_buffer(eb, fs_info->new_fsid,
(unsigned long)btrfs_device_fsid(di), (unsigned long)btrfs_device_fsid(di),
BTRFS_FSID_SIZE); BTRFS_FSID_SIZE);
ret = write_tree_block(NULL, root, eb); ret = write_tree_block(NULL, fs_info, eb);
return ret; return ret;
} }
@ -251,7 +251,7 @@ static int change_fsid_prepare(struct btrfs_fs_info *fs_info)
write_extent_buffer(tree_root->node, fs_info->new_chunk_tree_uuid, write_extent_buffer(tree_root->node, fs_info->new_chunk_tree_uuid,
btrfs_header_chunk_tree_uuid(tree_root->node), btrfs_header_chunk_tree_uuid(tree_root->node),
BTRFS_UUID_SIZE); BTRFS_UUID_SIZE);
return write_tree_block(NULL, tree_root, tree_root->node); return write_tree_block(NULL, fs_info, tree_root->node);
} }
static int change_fsid_done(struct btrfs_fs_info *fs_info) static int change_fsid_done(struct btrfs_fs_info *fs_info)

View File

@ -449,12 +449,12 @@ int write_and_map_eb(struct btrfs_fs_info *fs_info, struct extent_buffer *eb)
} }
int write_tree_block(struct btrfs_trans_handle *trans, int write_tree_block(struct btrfs_trans_handle *trans,
struct btrfs_root *root, struct btrfs_fs_info *fs_info,
struct extent_buffer *eb) struct extent_buffer *eb)
{ {
if (check_tree_block(root->fs_info, eb)) { if (check_tree_block(fs_info, eb)) {
print_tree_block_error(root->fs_info, eb, print_tree_block_error(fs_info, eb,
check_tree_block(root->fs_info, eb)); check_tree_block(fs_info, eb));
BUG(); BUG();
} }
@ -462,9 +462,9 @@ int write_tree_block(struct btrfs_trans_handle *trans,
BUG(); BUG();
btrfs_set_header_flag(eb, BTRFS_HEADER_FLAG_WRITTEN); btrfs_set_header_flag(eb, BTRFS_HEADER_FLAG_WRITTEN);
csum_tree_block(root->fs_info, eb, 0); csum_tree_block(fs_info, eb, 0);
return write_and_map_eb(root->fs_info, eb); return write_and_map_eb(fs_info, eb);
} }
void btrfs_setup_root(struct btrfs_root *root, struct btrfs_fs_info *fs_info, void btrfs_setup_root(struct btrfs_root *root, struct btrfs_fs_info *fs_info,
@ -548,8 +548,9 @@ static int __commit_transaction(struct btrfs_trans_handle *trans,
{ {
u64 start; u64 start;
u64 end; u64 end;
struct btrfs_fs_info *fs_info = root->fs_info;
struct extent_buffer *eb; struct extent_buffer *eb;
struct extent_io_tree *tree = &root->fs_info->extent_cache; struct extent_io_tree *tree = &fs_info->extent_cache;
int ret; int ret;
while(1) { while(1) {
@ -560,7 +561,7 @@ static int __commit_transaction(struct btrfs_trans_handle *trans,
while(start <= end) { while(start <= end) {
eb = find_first_extent_buffer(tree, start); eb = find_first_extent_buffer(tree, start);
BUG_ON(!eb || eb->start != start); BUG_ON(!eb || eb->start != start);
ret = write_tree_block(trans, root, eb); ret = write_tree_block(trans, fs_info, eb);
BUG_ON(ret); BUG_ON(ret);
start += eb->len; start += eb->len;
clear_extent_buffer_dirty(eb); clear_extent_buffer_dirty(eb);

View File

@ -189,7 +189,7 @@ int csum_tree_block_size(struct extent_buffer *buf, u16 csum_sectorsize,
int verify_tree_block_csum_silent(struct extent_buffer *buf, u16 csum_size); int verify_tree_block_csum_silent(struct extent_buffer *buf, u16 csum_size);
int btrfs_read_buffer(struct extent_buffer *buf, u64 parent_transid); int btrfs_read_buffer(struct extent_buffer *buf, u64 parent_transid);
int write_tree_block(struct btrfs_trans_handle *trans, int write_tree_block(struct btrfs_trans_handle *trans,
struct btrfs_root *root, struct btrfs_fs_info *fs_info,
struct extent_buffer *eb); struct extent_buffer *eb);
int write_and_map_eb(struct btrfs_fs_info *fs_info, struct extent_buffer *eb); int write_and_map_eb(struct btrfs_fs_info *fs_info, struct extent_buffer *eb);