mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 07:51:31 -04:00
btrfs: remove redundant extent_buffer_uptodate() checks after read_tree_block()
We have several places that call extent_buffer_uptodate() after reading a
tree block with read_tree_block(), but that is redundant since we already
call extent_buffer_uptodate() in the call chain of read_tree_block():
read_tree_block()
btrfs_read_extent_buffer()
read_extent_buffer_pages()
returns -EIO if extent_buffer_uptodate() returns false
So remove those redundant checks.
Reviewed-by: Boris Burkov <boris@bur.io>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
committed by
David Sterba
parent
6ee5c986b0
commit
90b7d4c415
@@ -858,11 +858,6 @@ static int add_missing_keys(struct btrfs_fs_info *fs_info,
|
||||
free_pref(ref);
|
||||
return PTR_ERR(eb);
|
||||
}
|
||||
if (unlikely(!extent_buffer_uptodate(eb))) {
|
||||
free_pref(ref);
|
||||
free_extent_buffer(eb);
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
if (lock)
|
||||
btrfs_tree_read_lock(eb);
|
||||
@@ -1620,11 +1615,6 @@ static int find_parent_nodes(struct btrfs_backref_walk_ctx *ctx,
|
||||
ret = PTR_ERR(eb);
|
||||
goto out;
|
||||
}
|
||||
if (unlikely(!extent_buffer_uptodate(eb))) {
|
||||
free_extent_buffer(eb);
|
||||
ret = -EIO;
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (!path->skip_locking)
|
||||
btrfs_tree_read_lock(eb);
|
||||
|
||||
@@ -822,7 +822,6 @@ struct extent_buffer *btrfs_read_node_slot(struct extent_buffer *parent,
|
||||
{
|
||||
int level = btrfs_header_level(parent);
|
||||
struct btrfs_tree_parent_check check = { 0 };
|
||||
struct extent_buffer *eb;
|
||||
|
||||
if (slot < 0 || slot >= btrfs_header_nritems(parent))
|
||||
return ERR_PTR(-ENOENT);
|
||||
@@ -835,16 +834,8 @@ struct extent_buffer *btrfs_read_node_slot(struct extent_buffer *parent,
|
||||
check.has_first_key = true;
|
||||
btrfs_node_key_to_cpu(parent, &check.first_key, slot);
|
||||
|
||||
eb = read_tree_block(parent->fs_info, btrfs_node_blockptr(parent, slot),
|
||||
&check);
|
||||
if (IS_ERR(eb))
|
||||
return eb;
|
||||
if (unlikely(!extent_buffer_uptodate(eb))) {
|
||||
free_extent_buffer(eb);
|
||||
return ERR_PTR(-EIO);
|
||||
}
|
||||
|
||||
return eb;
|
||||
return read_tree_block(parent->fs_info, btrfs_node_blockptr(parent, slot),
|
||||
&check);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -2024,11 +2024,6 @@ static int btrfs_replay_log(struct btrfs_fs_info *fs_info,
|
||||
btrfs_put_root(log_tree_root);
|
||||
return ret;
|
||||
}
|
||||
if (unlikely(!extent_buffer_uptodate(log_tree_root->node))) {
|
||||
btrfs_err(fs_info, "failed to read log tree");
|
||||
btrfs_put_root(log_tree_root);
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
/* returns with log_tree_root freed on success */
|
||||
ret = btrfs_recover_log_trees(log_tree_root);
|
||||
@@ -2628,11 +2623,6 @@ static int load_super_root(struct btrfs_root *root, u64 bytenr, u64 gen, int lev
|
||||
root->node = NULL;
|
||||
return ret;
|
||||
}
|
||||
if (unlikely(!extent_buffer_uptodate(root->node))) {
|
||||
free_extent_buffer(root->node);
|
||||
root->node = NULL;
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
btrfs_set_root_node(&root->root_item, root->node);
|
||||
root->commit_root = btrfs_root_node(root);
|
||||
|
||||
@@ -626,10 +626,6 @@ void btrfs_print_tree(const struct extent_buffer *c, bool follow)
|
||||
next = read_tree_block(fs_info, btrfs_node_blockptr(c, i), &check);
|
||||
if (IS_ERR(next))
|
||||
continue;
|
||||
if (!extent_buffer_uptodate(next)) {
|
||||
free_extent_buffer(next);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (btrfs_is_leaf(next) &&
|
||||
level != 1)
|
||||
|
||||
@@ -4883,10 +4883,6 @@ int btrfs_qgroup_trace_subtree_after_cow(struct btrfs_trans_handle *trans,
|
||||
reloc_eb = NULL;
|
||||
goto free_out;
|
||||
}
|
||||
if (unlikely(!extent_buffer_uptodate(reloc_eb))) {
|
||||
ret = -EIO;
|
||||
goto free_out;
|
||||
}
|
||||
|
||||
ret = qgroup_trace_subtree_swap(trans, reloc_eb, subvol_eb,
|
||||
block->last_snapshot, block->trace_leaf);
|
||||
|
||||
@@ -2440,10 +2440,7 @@ static int get_tree_block_key(struct btrfs_fs_info *fs_info,
|
||||
eb = read_tree_block(fs_info, block->bytenr, &check);
|
||||
if (IS_ERR(eb))
|
||||
return PTR_ERR(eb);
|
||||
if (unlikely(!extent_buffer_uptodate(eb))) {
|
||||
free_extent_buffer(eb);
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
if (block->level == 0)
|
||||
btrfs_item_key_to_cpu(eb, &block->key, 0);
|
||||
else
|
||||
|
||||
@@ -1042,12 +1042,10 @@ struct extent_buffer *btrfs_get_old_root(struct btrfs_root *root, u64 time_seq)
|
||||
check.owner_root = btrfs_root_id(root);
|
||||
|
||||
old = read_tree_block(fs_info, logical, &check);
|
||||
if (WARN_ON(IS_ERR(old) || !extent_buffer_uptodate(old))) {
|
||||
if (!IS_ERR(old))
|
||||
free_extent_buffer(old);
|
||||
if (WARN_ON(IS_ERR(old))) {
|
||||
btrfs_warn(fs_info,
|
||||
"failed to read tree block %llu from get_old_root",
|
||||
logical);
|
||||
"failed to read tree block %llu from get_old_root: %ld",
|
||||
logical, PTR_ERR(old));
|
||||
} else {
|
||||
struct tree_mod_elem *tm2;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user