Fix print-tree.c to skip blocks it can't read instead of aborting
authorChris Mason <chris.mason@oracle.com>
Wed, 13 May 2009 15:27:35 +0000 (11:27 -0400)
committerChris Mason <chris.mason@oracle.com>
Wed, 13 May 2009 15:27:35 +0000 (11:27 -0400)
print-tree.c

index 5eb8bfe..846d966 100644 (file)
@@ -450,6 +450,12 @@ void btrfs_print_tree(struct btrfs_root *root, struct extent_buffer *eb)
                                             btrfs_node_blockptr(eb, i),
                                             size,
                                             btrfs_node_ptr_generation(eb, i));
+               if (!next) {
+                       fprintf(stderr, "failed to read %llu in tree %llu\n",
+                               (unsigned long long)btrfs_node_blockptr(eb, i),
+                               (unsigned long long)btrfs_header_owner(eb));
+                       continue;
+               }
                if (btrfs_is_leaf(next) &&
                    btrfs_header_level(eb) != 1)
                        BUG();