summaryrefslogtreecommitdiff
path: root/extent-tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'extent-tree.c')
-rw-r--r--extent-tree.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/extent-tree.c b/extent-tree.c
index 080f30d3..1785e226 100644
--- a/extent-tree.c
+++ b/extent-tree.c
@@ -2962,6 +2962,13 @@ static int noinline walk_down_tree(struct btrfs_trans_handle *trans,
next = read_tree_block(root, bytenr, blocksize,
ptr_gen);
mutex_lock(&root->fs_info->fs_mutex);
+ if (!extent_buffer_uptodate(next)) {
+ if (IS_ERR(next))
+ ret = PTR_ERR(next);
+ else
+ ret = -EIO;
+ break;
+ }
}
WARN_ON(*level <= 0);
if (path->nodes[*level-1])