diff options
author | Filipe David Borba Manana <fdmanana@gmail.com> | 2013-06-10 20:51:34 +0100 |
---|---|---|
committer | David Sterba <dsterba@suse.cz> | 2013-08-09 14:32:31 +0200 |
commit | e4d53a0b192fa9ec6b89ab6d7570a574bfdd6711 (patch) | |
tree | 497c2dca0859936bcd3a04fd1eb8c8f33e1a8240 /print-tree.c | |
parent | 76dabfb64fe779f630259744a2c88fbd0884b79f (diff) | |
download | btrfs-progs-e4d53a0b192fa9ec6b89ab6d7570a574bfdd6711.tar.gz |
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 <fdmanana@gmail.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
Diffstat (limited to 'print-tree.c')
-rw-r--r-- | print-tree.c | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/print-tree.c b/print-tree.c index aae47a9..4401a1a 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); |