From 90cab88fb4d550052a89aa1ee0512758e3567df2 Mon Sep 17 00:00:00 2001 From: Chris Mason Date: Mon, 13 Dec 2010 14:47:58 -0500 Subject: [PATCH] --- yaml --- r: 223078 b: refs/heads/master c: 68433b73b104bff388aac376631d32abbbd872b0 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/btrfs/disk-io.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 869882e22256..527ac9274b93 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3dd1462e82bcab7625cec129952f26dae7a8b742 +refs/heads/master: 68433b73b104bff388aac376631d32abbbd872b0 diff --git a/trunk/fs/btrfs/disk-io.c b/trunk/fs/btrfs/disk-io.c index b803c2667673..a5d2249e6da5 100644 --- a/trunk/fs/btrfs/disk-io.c +++ b/trunk/fs/btrfs/disk-io.c @@ -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)); root->node = read_tree_block(root, btrfs_root_bytenr(&root->root_item), 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); return 0; }