btrfs-progs: print the csum length in debug-tree
authorJosef Bacik <jbacik@fb.com>
Fri, 25 Aug 2017 15:11:46 +0000 (11:11 -0400)
committerDavid Sterba <dsterba@suse.com>
Fri, 8 Sep 2017 14:15:05 +0000 (16:15 +0200)
While looking at a log of a corrupted fs I needed to verify we were
missing csums for a given range.  Make this easier by printing out the
range of bytes a csum item covers.

Signed-off-by: Josef Bacik <jbacik@fb.com>
Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
print-tree.c

index b4da385..e53b9aa 100644 (file)
@@ -1233,9 +1233,16 @@ void btrfs_print_leaf(struct btrfs_root *root, struct extent_buffer *eb)
                case BTRFS_CSUM_ITEM_KEY:
                        printf("\t\tcsum item\n");
                        break;
-               case BTRFS_EXTENT_CSUM_KEY:
-                       printf("\t\textent csum item\n");
+               case BTRFS_EXTENT_CSUM_KEY: {
+                       u16 csum_size =
+                               btrfs_super_csum_size(root->fs_info->super_copy);
+                       u32 size = (item_size / csum_size) *
+                               root->fs_info->sectorsize;
+                       printf("\t\textent csum item range %llu-%llu\n",
+                              (unsigned long long)disk_key.offset,
+                              (unsigned long long)disk_key.offset + size);
                        break;
+                       }
                case BTRFS_EXTENT_DATA_KEY:
                        print_file_extent_item(eb, item, i, ptr);
                        break;