]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
fs: btrfs: change directory list output to be aligned as before
authorMarek Behún <marek.behun@nic.cz>
Tue, 9 Feb 2021 18:05:08 +0000 (19:05 +0100)
committerTom Rini <trini@konsulko.com>
Wed, 24 Feb 2021 21:51:48 +0000 (16:51 -0500)
Since commit 325dd1f642dd ("fs: btrfs: Use btrfs_iter_dir() to ...")
when btrfs is listing a directory, the output is not aligned:

  <SYMLINK>         15  Wed Sep 09 13:20:03 2020  boot.scr -> @/boot/boot.scr
  <DIR>          0  Tue Feb 02 12:42:09 2021  @
  <FILE>        108  Tue Feb 02 12:54:04 2021  1.info

Return back to how it was displayed previously, i.e.:

  <SYM>         15  Wed Sep 09 13:20:03 2020  boot.scr -> @/boot/boot.scr
  <DIR>          0  Tue Feb 02 12:42:09 2021  @
  <   >        108  Tue Feb 02 12:54:04 2021  1.info

Instead of '<FILE>', print '<   >', as ext4 driver.

If an unknown directory item type is encountered, we will print the type
number left padded with spaces, enclosed by '?', instead of '<' and '>',
i.e.:

  ? 30?        .............................  name

Signed-off-by: Marek Behún <marek.behun@nic.cz>
Fixes: 325dd1f642dd ("fs: btrfs: Use btrfs_iter_dir() to replace ...")
Cc: David Sterba <dsterba@suse.com>
Cc: Qu Wenruo <wqu@suse.com>
Cc: Tom Rini <trini@konsulko.com>
Reviewed-by: Qu Wenruo <wqu@suse.com>
fs/btrfs/btrfs.c

index 6b4c5feb53f4ea7876514b43ac30c12cc9c2f030..52a243a659ffbb27af3982ec01d0c54aed881bf2 100644 (file)
@@ -22,13 +22,13 @@ static int show_dir(struct btrfs_root *root, struct extent_buffer *eb,
        struct btrfs_inode_item ii;
        struct btrfs_key key;
        static const char* dir_item_str[] = {
-               [BTRFS_FT_REG_FILE]     = "FILE",
+               [BTRFS_FT_REG_FILE]     = "   ",
                [BTRFS_FT_DIR]          = "DIR",
-               [BTRFS_FT_CHRDEV]       = "CHRDEV",
-               [BTRFS_FT_BLKDEV]       = "BLKDEV",
-               [BTRFS_FT_FIFO]         = "FIFO",
-               [BTRFS_FT_SOCK]         = "SOCK",
-               [BTRFS_FT_SYMLINK]      = "SYMLINK",
+               [BTRFS_FT_CHRDEV]       = "CHR",
+               [BTRFS_FT_BLKDEV]       = "BLK",
+               [BTRFS_FT_FIFO]         = "FIF",
+               [BTRFS_FT_SOCK]         = "SCK",
+               [BTRFS_FT_SYMLINK]      = "SYM",
        };
        u8 type = btrfs_dir_type(eb, di);
        char namebuf[BTRFS_NAME_LEN];
@@ -93,7 +93,7 @@ static int show_dir(struct btrfs_root *root, struct extent_buffer *eb,
        if (type < ARRAY_SIZE(dir_item_str) && dir_item_str[type])
                printf("<%s> ", dir_item_str[type]);
        else
-               printf("DIR_ITEM.%u", type);
+               printf("?%3u? ", type);
        if (type == BTRFS_FT_CHRDEV || type == BTRFS_FT_BLKDEV) {
                ASSERT(key.type == BTRFS_INODE_ITEM_KEY);
                printf("%4llu,%5llu  ", btrfs_stack_inode_rdev(&ii) >> 20,