diff options
author | Chris Mason <chris.mason@oracle.com> | 2008-04-09 16:28:12 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2008-09-25 11:04:01 -0400 |
commit | f188591e987e21b6f7f8864c66a02858b95b530e (patch) | |
tree | 996f04b7c8d1e8a626b123e7a2a217992d705c60 /fs/btrfs/ctree.c | |
parent | 22c599485b1fdd95e4476a4752596a6cf6c6629a (diff) |
Btrfs: Retry metadata reads in the face of checksum failures
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/ctree.c')
-rw-r--r-- | fs/btrfs/ctree.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c index efce173a935c..ff4e9c6859d1 100644 --- a/fs/btrfs/ctree.c +++ b/fs/btrfs/ctree.c | |||
@@ -569,7 +569,16 @@ static int check_leaf(struct btrfs_root *root, struct btrfs_path *path, | |||
569 | static int noinline check_block(struct btrfs_root *root, | 569 | static int noinline check_block(struct btrfs_root *root, |
570 | struct btrfs_path *path, int level) | 570 | struct btrfs_path *path, int level) |
571 | { | 571 | { |
572 | return 0; | 572 | u64 found_start; |
573 | if (btrfs_header_level(path->nodes[level]) != level) | ||
574 | printk("warning: bad level %Lu wanted %d found %d\n", | ||
575 | path->nodes[level]->start, level, | ||
576 | btrfs_header_level(path->nodes[level])); | ||
577 | found_start = btrfs_header_bytenr(path->nodes[level]); | ||
578 | if (found_start != path->nodes[level]->start) { | ||
579 | printk("warning: bad bytentr %Lu found %Lu\n", | ||
580 | path->nodes[level]->start, found_start); | ||
581 | } | ||
573 | #if 0 | 582 | #if 0 |
574 | struct extent_buffer *buf = path->nodes[level]; | 583 | struct extent_buffer *buf = path->nodes[level]; |
575 | 584 | ||