btrfs-progs: Check the consistence between the parent node and child node/leaf.
authorQu Wenruo <quwenruo@cn.fujitsu.com>
Mon, 6 Oct 2014 06:31:21 +0000 (14:31 +0800)
committerDavid Sterba <dsterba@suse.cz>
Fri, 10 Oct 2014 08:38:38 +0000 (10:38 +0200)
commit0cf497719cf8d2c6f7967a386a7b54b0119fd1b4
treeeb0d61b948311b9be1ee51e1e481fb0ae0e93a81
parent935457f16446012841f8da5a5c9804063d76b366
btrfs-progs: Check the consistence between the parent node and child node/leaf.

When btrfs-progs walk down the tree, it does not check whether the child
node/leaf is valid.
In fact, there is some corrupted image whose csum is all valid but
parent node points to a invalid leaf.

In my case, the parent node in fs tree point to a invalid leaf(gen 11),
whose generation(15) and first key(EXTENT_TREE ROOT_ITEM 0) is
completely invalid, and will cause BUG_ON in process_inode_item().

Unfortunately, we are unable to fix when it happens.
So we can only output meaningful error message and avoid the insane
node/leaf, which is still much better than the original BUG_ON().

Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
cmds-check.c