提交 ce86cd59 编写于 作者: D David Sterba

btrfs: remove parameter blocksize from read_tree_block

We know the tree block size, no need to pass it around.
Signed-off-by: NDavid Sterba <dsterba@suse.cz>
上级 453848a0
...@@ -490,7 +490,7 @@ static int __add_missing_keys(struct btrfs_fs_info *fs_info, ...@@ -490,7 +490,7 @@ static int __add_missing_keys(struct btrfs_fs_info *fs_info,
continue; continue;
BUG_ON(!ref->wanted_disk_byte); BUG_ON(!ref->wanted_disk_byte);
eb = read_tree_block(fs_info->tree_root, ref->wanted_disk_byte, eb = read_tree_block(fs_info->tree_root, ref->wanted_disk_byte,
fs_info->tree_root->nodesize, 0); 0);
if (!eb || !extent_buffer_uptodate(eb)) { if (!eb || !extent_buffer_uptodate(eb)) {
free_extent_buffer(eb); free_extent_buffer(eb);
return -EIO; return -EIO;
...@@ -1028,12 +1028,10 @@ static int find_parent_nodes(struct btrfs_trans_handle *trans, ...@@ -1028,12 +1028,10 @@ static int find_parent_nodes(struct btrfs_trans_handle *trans,
if (ref->count && ref->parent) { if (ref->count && ref->parent) {
if (extent_item_pos && !ref->inode_list && if (extent_item_pos && !ref->inode_list &&
ref->level == 0) { ref->level == 0) {
u32 bsz;
struct extent_buffer *eb; struct extent_buffer *eb;
bsz = fs_info->extent_root->nodesize;
eb = read_tree_block(fs_info->extent_root, eb = read_tree_block(fs_info->extent_root,
ref->parent, bsz, 0); ref->parent, 0);
if (!eb || !extent_buffer_uptodate(eb)) { if (!eb || !extent_buffer_uptodate(eb)) {
free_extent_buffer(eb); free_extent_buffer(eb);
ret = -EIO; ret = -EIO;
......
...@@ -1425,7 +1425,6 @@ get_old_root(struct btrfs_root *root, u64 time_seq) ...@@ -1425,7 +1425,6 @@ get_old_root(struct btrfs_root *root, u64 time_seq)
struct tree_mod_root *old_root = NULL; struct tree_mod_root *old_root = NULL;
u64 old_generation = 0; u64 old_generation = 0;
u64 logical; u64 logical;
u32 blocksize;
eb_root = btrfs_read_lock_root_node(root); eb_root = btrfs_read_lock_root_node(root);
tm = __tree_mod_log_oldest_root(root->fs_info, eb_root, time_seq); tm = __tree_mod_log_oldest_root(root->fs_info, eb_root, time_seq);
...@@ -1444,8 +1443,7 @@ get_old_root(struct btrfs_root *root, u64 time_seq) ...@@ -1444,8 +1443,7 @@ get_old_root(struct btrfs_root *root, u64 time_seq)
if (old_root && tm && tm->op != MOD_LOG_KEY_REMOVE_WHILE_FREEING) { if (old_root && tm && tm->op != MOD_LOG_KEY_REMOVE_WHILE_FREEING) {
btrfs_tree_read_unlock(eb_root); btrfs_tree_read_unlock(eb_root);
free_extent_buffer(eb_root); free_extent_buffer(eb_root);
blocksize = root->nodesize; old = read_tree_block(root, logical, 0);
old = read_tree_block(root, logical, blocksize, 0);
if (WARN_ON(!old || !extent_buffer_uptodate(old))) { if (WARN_ON(!old || !extent_buffer_uptodate(old))) {
free_extent_buffer(old); free_extent_buffer(old);
btrfs_warn(root->fs_info, btrfs_warn(root->fs_info,
...@@ -1692,8 +1690,7 @@ int btrfs_realloc_node(struct btrfs_trans_handle *trans, ...@@ -1692,8 +1690,7 @@ int btrfs_realloc_node(struct btrfs_trans_handle *trans,
uptodate = 0; uptodate = 0;
if (!cur || !uptodate) { if (!cur || !uptodate) {
if (!cur) { if (!cur) {
cur = read_tree_block(root, blocknr, cur = read_tree_block(root, blocknr, gen);
blocksize, gen);
if (!cur || !extent_buffer_uptodate(cur)) { if (!cur || !extent_buffer_uptodate(cur)) {
free_extent_buffer(cur); free_extent_buffer(cur);
return -EIO; return -EIO;
...@@ -1872,7 +1869,6 @@ static noinline struct extent_buffer *read_node_slot(struct btrfs_root *root, ...@@ -1872,7 +1869,6 @@ static noinline struct extent_buffer *read_node_slot(struct btrfs_root *root,
BUG_ON(level == 0); BUG_ON(level == 0);
eb = read_tree_block(root, btrfs_node_blockptr(parent, slot), eb = read_tree_block(root, btrfs_node_blockptr(parent, slot),
root->nodesize,
btrfs_node_ptr_generation(parent, slot)); btrfs_node_ptr_generation(parent, slot));
if (eb && !extent_buffer_uptodate(eb)) { if (eb && !extent_buffer_uptodate(eb)) {
free_extent_buffer(eb); free_extent_buffer(eb);
...@@ -2507,7 +2503,7 @@ read_block_for_search(struct btrfs_trans_handle *trans, ...@@ -2507,7 +2503,7 @@ read_block_for_search(struct btrfs_trans_handle *trans,
btrfs_release_path(p); btrfs_release_path(p);
ret = -EAGAIN; ret = -EAGAIN;
tmp = read_tree_block(root, blocknr, blocksize, 0); tmp = read_tree_block(root, blocknr, 0);
if (tmp) { if (tmp) {
/* /*
* If the read above didn't mark this buffer up to date, * If the read above didn't mark this buffer up to date,
......
...@@ -1138,12 +1138,12 @@ int btrfs_wait_tree_block_writeback(struct extent_buffer *buf) ...@@ -1138,12 +1138,12 @@ int btrfs_wait_tree_block_writeback(struct extent_buffer *buf)
} }
struct extent_buffer *read_tree_block(struct btrfs_root *root, u64 bytenr, struct extent_buffer *read_tree_block(struct btrfs_root *root, u64 bytenr,
u32 blocksize, u64 parent_transid) u64 parent_transid)
{ {
struct extent_buffer *buf = NULL; struct extent_buffer *buf = NULL;
int ret; int ret;
buf = btrfs_find_create_tree_block(root, bytenr, blocksize); buf = btrfs_find_create_tree_block(root, bytenr, root->nodesize);
if (!buf) if (!buf)
return NULL; return NULL;
...@@ -1484,7 +1484,6 @@ static struct btrfs_root *btrfs_read_tree_root(struct btrfs_root *tree_root, ...@@ -1484,7 +1484,6 @@ static struct btrfs_root *btrfs_read_tree_root(struct btrfs_root *tree_root,
struct btrfs_fs_info *fs_info = tree_root->fs_info; struct btrfs_fs_info *fs_info = tree_root->fs_info;
struct btrfs_path *path; struct btrfs_path *path;
u64 generation; u64 generation;
u32 blocksize;
int ret; int ret;
path = btrfs_alloc_path(); path = btrfs_alloc_path();
...@@ -1509,9 +1508,8 @@ static struct btrfs_root *btrfs_read_tree_root(struct btrfs_root *tree_root, ...@@ -1509,9 +1508,8 @@ static struct btrfs_root *btrfs_read_tree_root(struct btrfs_root *tree_root,
} }
generation = btrfs_root_generation(&root->root_item); generation = btrfs_root_generation(&root->root_item);
blocksize = root->nodesize;
root->node = read_tree_block(root, btrfs_root_bytenr(&root->root_item), root->node = read_tree_block(root, btrfs_root_bytenr(&root->root_item),
blocksize, generation); generation);
if (!root->node) { if (!root->node) {
ret = -ENOMEM; ret = -ENOMEM;
goto find_fail; goto find_fail;
...@@ -2139,7 +2137,6 @@ int open_ctree(struct super_block *sb, ...@@ -2139,7 +2137,6 @@ int open_ctree(struct super_block *sb,
{ {
u32 sectorsize; u32 sectorsize;
u32 nodesize; u32 nodesize;
u32 blocksize;
u32 stripesize; u32 stripesize;
u64 generation; u64 generation;
u64 features; u64 features;
...@@ -2643,7 +2640,6 @@ int open_ctree(struct super_block *sb, ...@@ -2643,7 +2640,6 @@ int open_ctree(struct super_block *sb,
goto fail_sb_buffer; goto fail_sb_buffer;
} }
blocksize = tree_root->nodesize;
generation = btrfs_super_chunk_root_generation(disk_super); generation = btrfs_super_chunk_root_generation(disk_super);
__setup_root(nodesize, sectorsize, stripesize, chunk_root, __setup_root(nodesize, sectorsize, stripesize, chunk_root,
...@@ -2651,7 +2647,7 @@ int open_ctree(struct super_block *sb, ...@@ -2651,7 +2647,7 @@ int open_ctree(struct super_block *sb,
chunk_root->node = read_tree_block(chunk_root, chunk_root->node = read_tree_block(chunk_root,
btrfs_super_chunk_root(disk_super), btrfs_super_chunk_root(disk_super),
blocksize, generation); generation);
if (!chunk_root->node || if (!chunk_root->node ||
!test_bit(EXTENT_BUFFER_UPTODATE, &chunk_root->node->bflags)) { !test_bit(EXTENT_BUFFER_UPTODATE, &chunk_root->node->bflags)) {
printk(KERN_WARNING "BTRFS: failed to read chunk root on %s\n", printk(KERN_WARNING "BTRFS: failed to read chunk root on %s\n",
...@@ -2684,12 +2680,11 @@ int open_ctree(struct super_block *sb, ...@@ -2684,12 +2680,11 @@ int open_ctree(struct super_block *sb,
} }
retry_root_backup: retry_root_backup:
blocksize = tree_root->nodesize;
generation = btrfs_super_generation(disk_super); generation = btrfs_super_generation(disk_super);
tree_root->node = read_tree_block(tree_root, tree_root->node = read_tree_block(tree_root,
btrfs_super_root(disk_super), btrfs_super_root(disk_super),
blocksize, generation); generation);
if (!tree_root->node || if (!tree_root->node ||
!test_bit(EXTENT_BUFFER_UPTODATE, &tree_root->node->bflags)) { !test_bit(EXTENT_BUFFER_UPTODATE, &tree_root->node->bflags)) {
printk(KERN_WARNING "BTRFS: failed to read tree root on %s\n", printk(KERN_WARNING "BTRFS: failed to read tree root on %s\n",
...@@ -2858,7 +2853,6 @@ int open_ctree(struct super_block *sb, ...@@ -2858,7 +2853,6 @@ int open_ctree(struct super_block *sb,
err = -EIO; err = -EIO;
goto fail_qgroup; goto fail_qgroup;
} }
blocksize = tree_root->nodesize;
log_tree_root = btrfs_alloc_root(fs_info); log_tree_root = btrfs_alloc_root(fs_info);
if (!log_tree_root) { if (!log_tree_root) {
...@@ -2870,7 +2864,6 @@ int open_ctree(struct super_block *sb, ...@@ -2870,7 +2864,6 @@ int open_ctree(struct super_block *sb,
log_tree_root, fs_info, BTRFS_TREE_LOG_OBJECTID); log_tree_root, fs_info, BTRFS_TREE_LOG_OBJECTID);
log_tree_root->node = read_tree_block(tree_root, bytenr, log_tree_root->node = read_tree_block(tree_root, bytenr,
blocksize,
generation + 1); generation + 1);
if (!log_tree_root->node || if (!log_tree_root->node ||
!extent_buffer_uptodate(log_tree_root->node)) { !extent_buffer_uptodate(log_tree_root->node)) {
......
...@@ -45,7 +45,7 @@ struct btrfs_device; ...@@ -45,7 +45,7 @@ struct btrfs_device;
struct btrfs_fs_devices; struct btrfs_fs_devices;
struct extent_buffer *read_tree_block(struct btrfs_root *root, u64 bytenr, struct extent_buffer *read_tree_block(struct btrfs_root *root, u64 bytenr,
u32 blocksize, u64 parent_transid); u64 parent_transid);
void readahead_tree_block(struct btrfs_root *root, u64 bytenr, u32 blocksize); void readahead_tree_block(struct btrfs_root *root, u64 bytenr, u32 blocksize);
int reada_tree_block_flagged(struct btrfs_root *root, u64 bytenr, u32 blocksize, int reada_tree_block_flagged(struct btrfs_root *root, u64 bytenr, u32 blocksize,
int mirror_num, struct extent_buffer **eb); int mirror_num, struct extent_buffer **eb);
......
...@@ -7645,7 +7645,6 @@ static int account_shared_subtree(struct btrfs_trans_handle *trans, ...@@ -7645,7 +7645,6 @@ static int account_shared_subtree(struct btrfs_trans_handle *trans,
level = root_level; level = root_level;
while (level >= 0) { while (level >= 0) {
if (path->nodes[level] == NULL) { if (path->nodes[level] == NULL) {
int child_bsize = root->nodesize;
int parent_slot; int parent_slot;
u64 child_gen; u64 child_gen;
u64 child_bytenr; u64 child_bytenr;
...@@ -7657,8 +7656,7 @@ static int account_shared_subtree(struct btrfs_trans_handle *trans, ...@@ -7657,8 +7656,7 @@ static int account_shared_subtree(struct btrfs_trans_handle *trans,
child_bytenr = btrfs_node_blockptr(eb, parent_slot); child_bytenr = btrfs_node_blockptr(eb, parent_slot);
child_gen = btrfs_node_ptr_generation(eb, parent_slot); child_gen = btrfs_node_ptr_generation(eb, parent_slot);
eb = read_tree_block(root, child_bytenr, child_bsize, eb = read_tree_block(root, child_bytenr, child_gen);
child_gen);
if (!eb || !extent_buffer_uptodate(eb)) { if (!eb || !extent_buffer_uptodate(eb)) {
ret = -EIO; ret = -EIO;
goto out; goto out;
...@@ -7674,7 +7672,7 @@ static int account_shared_subtree(struct btrfs_trans_handle *trans, ...@@ -7674,7 +7672,7 @@ static int account_shared_subtree(struct btrfs_trans_handle *trans,
ret = btrfs_qgroup_record_ref(trans, root->fs_info, ret = btrfs_qgroup_record_ref(trans, root->fs_info,
root->objectid, root->objectid,
child_bytenr, child_bytenr,
child_bsize, root->nodesize,
BTRFS_QGROUP_OPER_SUB_SUBTREE, BTRFS_QGROUP_OPER_SUB_SUBTREE,
0); 0);
if (ret) if (ret)
...@@ -7889,7 +7887,7 @@ static noinline int do_walk_down(struct btrfs_trans_handle *trans, ...@@ -7889,7 +7887,7 @@ static noinline int do_walk_down(struct btrfs_trans_handle *trans,
if (!next) { if (!next) {
if (reada && level == 1) if (reada && level == 1)
reada_walk_down(trans, root, wc, path); reada_walk_down(trans, root, wc, path);
next = read_tree_block(root, bytenr, blocksize, generation); next = read_tree_block(root, bytenr, generation);
if (!next || !extent_buffer_uptodate(next)) { if (!next || !extent_buffer_uptodate(next)) {
free_extent_buffer(next); free_extent_buffer(next);
return -EIO; return -EIO;
......
...@@ -336,7 +336,6 @@ void btrfs_print_tree(struct btrfs_root *root, struct extent_buffer *c) ...@@ -336,7 +336,6 @@ void btrfs_print_tree(struct btrfs_root *root, struct extent_buffer *c)
for (i = 0; i < nr; i++) { for (i = 0; i < nr; i++) {
struct extent_buffer *next = read_tree_block(root, struct extent_buffer *next = read_tree_block(root,
btrfs_node_blockptr(c, i), btrfs_node_blockptr(c, i),
root->nodesize,
btrfs_node_ptr_generation(c, i)); btrfs_node_ptr_generation(c, i));
if (btrfs_is_leaf(next) && if (btrfs_is_leaf(next) &&
level != 1) level != 1)
......
...@@ -1813,8 +1813,7 @@ int replace_path(struct btrfs_trans_handle *trans, ...@@ -1813,8 +1813,7 @@ int replace_path(struct btrfs_trans_handle *trans,
break; break;
} }
eb = read_tree_block(dest, old_bytenr, blocksize, eb = read_tree_block(dest, old_bytenr, old_ptr_gen);
old_ptr_gen);
if (!eb || !extent_buffer_uptodate(eb)) { if (!eb || !extent_buffer_uptodate(eb)) {
ret = (!eb) ? -ENOMEM : -EIO; ret = (!eb) ? -ENOMEM : -EIO;
free_extent_buffer(eb); free_extent_buffer(eb);
...@@ -1944,7 +1943,6 @@ int walk_down_reloc_tree(struct btrfs_root *root, struct btrfs_path *path, ...@@ -1944,7 +1943,6 @@ int walk_down_reloc_tree(struct btrfs_root *root, struct btrfs_path *path,
u64 bytenr; u64 bytenr;
u64 ptr_gen = 0; u64 ptr_gen = 0;
u64 last_snapshot; u64 last_snapshot;
u32 blocksize;
u32 nritems; u32 nritems;
last_snapshot = btrfs_root_last_snapshot(&root->root_item); last_snapshot = btrfs_root_last_snapshot(&root->root_item);
...@@ -1970,8 +1968,7 @@ int walk_down_reloc_tree(struct btrfs_root *root, struct btrfs_path *path, ...@@ -1970,8 +1968,7 @@ int walk_down_reloc_tree(struct btrfs_root *root, struct btrfs_path *path,
} }
bytenr = btrfs_node_blockptr(eb, path->slots[i]); bytenr = btrfs_node_blockptr(eb, path->slots[i]);
blocksize = root->nodesize; eb = read_tree_block(root, bytenr, ptr_gen);
eb = read_tree_block(root, bytenr, blocksize, ptr_gen);
if (!eb || !extent_buffer_uptodate(eb)) { if (!eb || !extent_buffer_uptodate(eb)) {
free_extent_buffer(eb); free_extent_buffer(eb);
return -EIO; return -EIO;
...@@ -2680,7 +2677,7 @@ static int do_relocation(struct btrfs_trans_handle *trans, ...@@ -2680,7 +2677,7 @@ static int do_relocation(struct btrfs_trans_handle *trans,
blocksize = root->nodesize; blocksize = root->nodesize;
generation = btrfs_node_ptr_generation(upper->eb, slot); generation = btrfs_node_ptr_generation(upper->eb, slot);
eb = read_tree_block(root, bytenr, blocksize, generation); eb = read_tree_block(root, bytenr, generation);
if (!eb || !extent_buffer_uptodate(eb)) { if (!eb || !extent_buffer_uptodate(eb)) {
free_extent_buffer(eb); free_extent_buffer(eb);
err = -EIO; err = -EIO;
...@@ -2842,7 +2839,7 @@ static int get_tree_block_key(struct reloc_control *rc, ...@@ -2842,7 +2839,7 @@ static int get_tree_block_key(struct reloc_control *rc,
BUG_ON(block->key_ready); BUG_ON(block->key_ready);
eb = read_tree_block(rc->extent_root, block->bytenr, eb = read_tree_block(rc->extent_root, block->bytenr,
block->key.objectid, block->key.offset); block->key.offset);
if (!eb || !extent_buffer_uptodate(eb)) { if (!eb || !extent_buffer_uptodate(eb)) {
free_extent_buffer(eb); free_extent_buffer(eb);
return -EIO; return -EIO;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册