summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2011-10-27 17:42:26 -0400
committerChris Mason <chris.mason@oracle.com>2011-10-27 17:42:26 -0400
commitb670b9285efb2cd5b8a1668d6e80727d03e2a3d2 (patch)
tree310e15d84ce711ffae4aadac3a0ee95eff545c2f
parentff91b185f7ddad0f16fb0be4c6713d65daf1b03e (diff)
btrfs-debug-tree: add -r option to print only the roots
Signed-off-by: Chris Mason <chris.mason@oracle.com>
-rw-r--r--debug-tree.c37
1 files changed, 28 insertions, 9 deletions
diff --git a/debug-tree.c b/debug-tree.c
index 34cefe9f..91e0064f 100644
--- a/debug-tree.c
+++ b/debug-tree.c
@@ -76,6 +76,7 @@ int main(int ac, char **av)
int slot;
int extent_only = 0;
int device_only = 0;
+ int roots_only = 0;
u64 block_only = 0;
struct btrfs_root *tree_root_scan;
@@ -83,7 +84,7 @@ int main(int ac, char **av)
while(1) {
int c;
- c = getopt(ac, av, "deb:");
+ c = getopt(ac, av, "deb:r");
if (c < 0)
break;
switch(c) {
@@ -93,6 +94,9 @@ int main(int ac, char **av)
case 'd':
device_only = 1;
break;
+ case 'r':
+ roots_only = 1;
+ break;
case 'b':
block_only = atoll(optarg);
break;
@@ -134,13 +138,22 @@ int main(int ac, char **av)
}
if (!extent_only) {
- printf("root tree\n");
- btrfs_print_tree(root->fs_info->tree_root,
- root->fs_info->tree_root->node, 1);
+ if (roots_only) {
+ printf("root tree: %llu level %d\n",
+ (unsigned long long)root->fs_info->tree_root->node->start,
+ btrfs_header_level(root->fs_info->tree_root->node));
+ printf("chunk tree: %llu level %d\n",
+ (unsigned long long)root->fs_info->chunk_root->node->start,
+ btrfs_header_level(root->fs_info->chunk_root->node));
+ } else {
+ printf("root tree\n");
+ btrfs_print_tree(root->fs_info->tree_root,
+ root->fs_info->tree_root->node, 1);
- printf("chunk tree\n");
- btrfs_print_tree(root->fs_info->chunk_root,
- root->fs_info->chunk_root->node, 1);
+ printf("chunk tree\n");
+ btrfs_print_tree(root->fs_info->chunk_root,
+ root->fs_info->chunk_root->node, 1);
+ }
}
tree_root_scan = root->fs_info->tree_root;
@@ -253,8 +266,14 @@ again:
} else if (!skip) {
printf(" tree ");
btrfs_print_key(&disk_key);
- printf(" \n");
- btrfs_print_tree(tree_root_scan, buf, 1);
+ if (roots_only) {
+ printf(" %llu level %d\n",
+ (unsigned long long)buf->start,
+ btrfs_header_level(buf));
+ } else {
+ printf(" \n");
+ btrfs_print_tree(tree_root_scan, buf, 1);
+ }
}
}
path.slots[0]++;