From e4d53a0b192fa9ec6b89ab6d7570a574bfdd6711 Mon Sep 17 00:00:00 2001 From: Filipe David Borba Manana Date: Mon, 10 Jun 2013 20:51:34 +0100 Subject: Btrfs-progs: pretty print dir_item type Instead of printing an integer, print a symbolic name which is more human friendly. Particularly useful when using the program btrfs-debug-tree. Signed-off-by: Filipe David Borba Manana Signed-off-by: David Sterba Signed-off-by: Chris Mason --- print-tree.c | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) (limited to 'print-tree.c') diff --git a/print-tree.c b/print-tree.c index aae47a94..4401a1ab 100644 --- a/print-tree.c +++ b/print-tree.c @@ -25,6 +25,42 @@ #include "disk-io.h" #include "print-tree.h" + +static void print_dir_item_type(struct extent_buffer *eb, + struct btrfs_dir_item *di) +{ + u8 type = btrfs_dir_type(eb, di); + + switch (type) { + case BTRFS_FT_REG_FILE: + printf("FILE"); + break; + case BTRFS_FT_DIR: + printf("DIR"); + break; + case BTRFS_FT_CHRDEV: + printf("CHRDEV"); + break; + case BTRFS_FT_BLKDEV: + printf("BLKDEV"); + break; + case BTRFS_FT_FIFO: + printf("FIFO"); + break; + case BTRFS_FT_SOCK: + printf("SOCK"); + break; + case BTRFS_FT_SYMLINK: + printf("SYMLINK"); + break; + case BTRFS_FT_XATTR: + printf("XATTR"); + break; + default: + printf("%u", type); + } +} + static int print_dir_item(struct extent_buffer *eb, struct btrfs_item *item, struct btrfs_dir_item *di) { @@ -41,7 +77,9 @@ static int print_dir_item(struct extent_buffer *eb, struct btrfs_item *item, btrfs_dir_item_key(eb, di, &location); printf("\t\tlocation "); btrfs_print_key(&location); - printf(" type %u\n", btrfs_dir_type(eb, di)); + printf(" type "); + print_dir_item_type(eb, di); + printf("\n"); name_len = btrfs_dir_name_len(eb, di); data_len = btrfs_dir_data_len(eb, di); len = (name_len <= sizeof(namebuf))? name_len: sizeof(namebuf); -- cgit v1.2.3