forked from Mirrors/btrfs-progs
debug-tree output tree/key type instead of id
This makes the tree name and key type output more readable. Signed-off-by: Shen Feng <shen@cn.fujitsu.com>master
parent
db6772f4d3
commit
52b14673e6
74
debug-tree.c
74
debug-tree.c
|
@ -178,21 +178,79 @@ int main(int ac, char **av)
|
||||||
switch(found_key.objectid) {
|
switch(found_key.objectid) {
|
||||||
case BTRFS_ROOT_TREE_OBJECTID:
|
case BTRFS_ROOT_TREE_OBJECTID:
|
||||||
if (!skip)
|
if (!skip)
|
||||||
printf("root ");
|
printf("root");
|
||||||
break;
|
|
||||||
case BTRFS_DEV_TREE_OBJECTID:
|
|
||||||
if (!skip) {
|
|
||||||
printf("device extent tree ");
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case BTRFS_EXTENT_TREE_OBJECTID:
|
case BTRFS_EXTENT_TREE_OBJECTID:
|
||||||
skip = 0;
|
skip = 0;
|
||||||
if (!extent_only)
|
if (!extent_only)
|
||||||
printf("extent tree ");
|
printf("extent");
|
||||||
break;
|
break;
|
||||||
|
case BTRFS_CHUNK_TREE_OBJECTID:
|
||||||
|
if (!skip) {
|
||||||
|
printf("chunk");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case BTRFS_DEV_TREE_OBJECTID:
|
||||||
|
if (!skip) {
|
||||||
|
printf("device");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case BTRFS_FS_TREE_OBJECTID:
|
||||||
|
if (!skip) {
|
||||||
|
printf("fs");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case BTRFS_ROOT_TREE_DIR_OBJECTID:
|
||||||
|
if (!skip) {
|
||||||
|
printf("directory");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case BTRFS_CSUM_TREE_OBJECTID:
|
||||||
|
if (!skip) {
|
||||||
|
printf("checksum");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case BTRFS_ORPHAN_OBJECTID:
|
||||||
|
if (!skip) {
|
||||||
|
printf("orphan");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case BTRFS_TREE_LOG_OBJECTID:
|
||||||
|
if (!skip) {
|
||||||
|
printf("log");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case BTRFS_TREE_LOG_FIXUP_OBJECTID:
|
||||||
|
if (!skip) {
|
||||||
|
printf("log fixup");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case BTRFS_TREE_RELOC_OBJECTID:
|
||||||
|
if (!skip) {
|
||||||
|
printf("reloc");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case BTRFS_DATA_RELOC_TREE_OBJECTID:
|
||||||
|
if (!skip) {
|
||||||
|
printf("data reloc");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case BTRFS_EXTENT_CSUM_OBJECTID:
|
||||||
|
if (!skip) {
|
||||||
|
printf("extent checksum");
|
||||||
|
}
|
||||||
|
case BTRFS_MULTIPLE_OBJECTIDS:
|
||||||
|
if (!skip) {
|
||||||
|
printf("multiple");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (!skip) {
|
||||||
|
printf("file");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!skip && !extent_only) {
|
if (!skip && !extent_only) {
|
||||||
printf("tree %llu %u %llu\n",
|
printf(" tree (%llu %u %llu)\n",
|
||||||
(unsigned long long)found_key.objectid,
|
(unsigned long long)found_key.objectid,
|
||||||
found_key.type,
|
found_key.type,
|
||||||
(unsigned long long)found_key.offset);
|
(unsigned long long)found_key.offset);
|
||||||
|
|
79
print-tree.c
79
print-tree.c
|
@ -174,6 +174,71 @@ static void print_root_ref(struct extent_buffer *leaf, int slot, char *tag)
|
||||||
namelen, namebuf);
|
namelen, namebuf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void print_key_type(u8 type)
|
||||||
|
{
|
||||||
|
switch (type) {
|
||||||
|
case BTRFS_INODE_ITEM_KEY:
|
||||||
|
printf("INODE_ITEM");
|
||||||
|
break;
|
||||||
|
case BTRFS_INODE_REF_KEY:
|
||||||
|
printf("INODE_REF");
|
||||||
|
break;
|
||||||
|
case BTRFS_DIR_ITEM_KEY:
|
||||||
|
printf("DIR_ITEM");
|
||||||
|
break;
|
||||||
|
case BTRFS_DIR_INDEX_KEY:
|
||||||
|
printf("DIR_INDEX");
|
||||||
|
break;
|
||||||
|
case BTRFS_XATTR_ITEM_KEY:
|
||||||
|
printf("XATTR_ITEM");
|
||||||
|
break;
|
||||||
|
case BTRFS_ORPHAN_ITEM_KEY:
|
||||||
|
printf("ORPHAN_ITEM");
|
||||||
|
break;
|
||||||
|
case BTRFS_ROOT_ITEM_KEY:
|
||||||
|
printf("ROOT_ITEM");
|
||||||
|
break;
|
||||||
|
case BTRFS_ROOT_REF_KEY:
|
||||||
|
printf("ROOT_REF");
|
||||||
|
break;
|
||||||
|
case BTRFS_ROOT_BACKREF_KEY:
|
||||||
|
printf("ROOT_BACKREF");
|
||||||
|
break;
|
||||||
|
case BTRFS_EXTENT_ITEM_KEY:
|
||||||
|
printf("EXTENT_ITEM");
|
||||||
|
break;
|
||||||
|
case BTRFS_EXTENT_REF_KEY:
|
||||||
|
printf("EXTENT_REF");
|
||||||
|
break;
|
||||||
|
case BTRFS_CSUM_ITEM_KEY:
|
||||||
|
printf("CSUM_ITEM");
|
||||||
|
break;
|
||||||
|
case BTRFS_EXTENT_CSUM_KEY:
|
||||||
|
printf("EXTENT_CSUM");
|
||||||
|
break;
|
||||||
|
case BTRFS_EXTENT_DATA_KEY:
|
||||||
|
printf("EXTENT_DATA");
|
||||||
|
break;
|
||||||
|
case BTRFS_BLOCK_GROUP_ITEM_KEY:
|
||||||
|
printf("GROUP_ITEM");
|
||||||
|
break;
|
||||||
|
case BTRFS_CHUNK_ITEM_KEY:
|
||||||
|
printf("CHUNK_ITEM");
|
||||||
|
break;
|
||||||
|
case BTRFS_DEV_ITEM_KEY:
|
||||||
|
printf("DEV_ITEM");
|
||||||
|
break;
|
||||||
|
case BTRFS_DEV_EXTENT_KEY:
|
||||||
|
printf("DEV_EXTENT");
|
||||||
|
break;
|
||||||
|
case BTRFS_STRING_ITEM_KEY:
|
||||||
|
printf("STRING_ITEM");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
printf("UNKNOWN");
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
void btrfs_print_leaf(struct btrfs_root *root, struct extent_buffer *l)
|
void btrfs_print_leaf(struct btrfs_root *root, struct extent_buffer *l)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -206,10 +271,11 @@ void btrfs_print_leaf(struct btrfs_root *root, struct extent_buffer *l)
|
||||||
item = btrfs_item_nr(l, i);
|
item = btrfs_item_nr(l, i);
|
||||||
btrfs_item_key(l, &disk_key, i);
|
btrfs_item_key(l, &disk_key, i);
|
||||||
type = btrfs_disk_key_type(&disk_key);
|
type = btrfs_disk_key_type(&disk_key);
|
||||||
printf("\titem %d key (%llu %x %llu) itemoff %d itemsize %d\n",
|
printf("\titem %d key (%llu ",
|
||||||
i,
|
i,
|
||||||
(unsigned long long)btrfs_disk_key_objectid(&disk_key),
|
(unsigned long long)btrfs_disk_key_objectid(&disk_key));
|
||||||
btrfs_disk_key_type(&disk_key),
|
print_key_type(type);
|
||||||
|
printf(" %llu) itemoff %d itemsize %d\n",
|
||||||
(unsigned long long)btrfs_disk_key_offset(&disk_key),
|
(unsigned long long)btrfs_disk_key_offset(&disk_key),
|
||||||
btrfs_item_offset(l, item),
|
btrfs_item_offset(l, item),
|
||||||
btrfs_item_size(l, item));
|
btrfs_item_size(l, item));
|
||||||
|
@ -355,10 +421,11 @@ void btrfs_print_tree(struct btrfs_root *root, struct extent_buffer *eb)
|
||||||
for (i = 0; i < nr; i++) {
|
for (i = 0; i < nr; i++) {
|
||||||
u64 blocknr = btrfs_node_blockptr(eb, i);
|
u64 blocknr = btrfs_node_blockptr(eb, i);
|
||||||
btrfs_node_key_to_cpu(eb, &key, i);
|
btrfs_node_key_to_cpu(eb, &key, i);
|
||||||
printf("\tkey %d (%llu %x %llu) block %llu (%llu) gen %llu\n",
|
printf("\tkey %d (%llu ",
|
||||||
i,
|
i,
|
||||||
(unsigned long long)key.objectid,
|
(unsigned long long)key.objectid);
|
||||||
key.type,
|
print_key_type(key.type);
|
||||||
|
printf(" %llu) block %llu (%llu) gen %llu\n",
|
||||||
(unsigned long long)key.offset,
|
(unsigned long long)key.offset,
|
||||||
(unsigned long long)blocknr,
|
(unsigned long long)blocknr,
|
||||||
(unsigned long long)blocknr / size,
|
(unsigned long long)blocknr / size,
|
||||||
|
|
Loading…
Reference in New Issue