mirror of
https://github.com/kdave/btrfs-progs
synced 2025-04-22 23:15:19 +00:00
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>
This commit is contained in:
parent
790b5950f3
commit
f85fc6e378
@ -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)
|
||||||
|
17
disk-io.c
17
disk-io.c
@ -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);
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user