|
@@ -1007,7 +1007,10 @@ static int find_and_setup_root(struct btrfs_root *tree_root,
|
|
blocksize = btrfs_level_size(root, btrfs_root_level(&root->root_item));
|
|
blocksize = btrfs_level_size(root, btrfs_root_level(&root->root_item));
|
|
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);
|
|
blocksize, generation);
|
|
- BUG_ON(!root->node);
|
|
|
|
|
|
+ if (!root->node || !btrfs_buffer_uptodate(root->node, generation)) {
|
|
|
|
+ free_extent_buffer(root->node);
|
|
|
|
+ return -EIO;
|
|
|
|
+ }
|
|
root->commit_root = btrfs_root_node(root);
|
|
root->commit_root = btrfs_root_node(root);
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|