diff mbox series

[u-boot,2/2] fs: btrfs: change directory list output to be aligned as before

Message ID 20210209180508.22132-2-marek.behun@nic.cz (mailing list archive)
State New, archived
Headers show
Series [u-boot,1/2] fs: btrfs: skip xattrs in directory listing | expand

Commit Message

Marek Behún Feb. 9, 2021, 6:05 p.m. UTC
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>
---
 fs/btrfs/btrfs.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

Comments

Qu Wenruo Feb. 10, 2021, 12:20 a.m. UTC | #1
On 2021/2/10 上午2:05, Marek Behún wrote:
> 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 | 14 +++++++-------
>   1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/fs/btrfs/btrfs.c b/fs/btrfs/btrfs.c
> index 6b4c5feb53..52a243a659 100644
> --- a/fs/btrfs/btrfs.c
> +++ b/fs/btrfs/btrfs.c
> @@ -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",

Since btrfs-progs also use similar output for its dump-tree, I guess
it's also possible to use the similar 3 chars output, except the FILE.

Thanks,
Qu
>   	};
>   	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,
>
Tom Rini Feb. 25, 2021, 1:25 p.m. UTC | #2
On Tue, Feb 09, 2021 at 07:05:08PM +0100, Marek Behún wrote:

> 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>

Applied to u-boot/master, thanks!
diff mbox series

Patch

diff --git a/fs/btrfs/btrfs.c b/fs/btrfs/btrfs.c
index 6b4c5feb53..52a243a659 100644
--- a/fs/btrfs/btrfs.c
+++ b/fs/btrfs/btrfs.c
@@ -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,