[PATCH] erofs-utils: dump: refine file info statistics
Gao Xiang
hsiangkao at linux.alibaba.com
Tue Nov 16 11:06:19 AEDT 2021
Also print the file type when dumping file info.
Cc: Guo Xuenan <guoxuenan at huawei.com>
Signed-off-by: Gao Xiang <hsiangkao at linux.alibaba.com>
---
dump/main.c | 16 +++++++++-------
include/erofs/inode.h | 1 +
lib/inode.c | 2 +-
3 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/dump/main.c b/dump/main.c
index 401e6841aefb..a7199937b8e0 100644
--- a/dump/main.c
+++ b/dump/main.c
@@ -9,6 +9,7 @@
#include <getopt.h>
#include <time.h>
#include "erofs/print.h"
+#include "erofs/inode.h"
#include "erofs/io.h"
#ifdef HAVE_LIBUUID
@@ -461,16 +462,17 @@ static void erofsdump_show_fileinfo(bool show_extent)
if (((access_mode >> i) & 1) == 0)
access_mode_str[8 - i] = '-';
fprintf(stdout, "File : %s\n", path);
- fprintf(stdout, "NID: %" PRIu64 " ", inode.nid);
- fprintf(stdout, "Links: %u ", inode.i_nlink);
- fprintf(stdout, "Layout: %d\n", inode.datalayout);
+ fprintf(stdout, "Size: %" PRIu64" On-disk size: %" PRIu64 " %s\n",
+ inode.i_size, size,
+ file_category_types[erofs_mode_to_ftype(inode.i_mode)]);
+ fprintf(stdout, "NID: %" PRIu64 " ", inode.nid);
+ fprintf(stdout, "Links: %u ", inode.i_nlink);
+ fprintf(stdout, "Layout: %d Compression ratio: %.2f%%\n",
+ inode.datalayout,
+ (double)(100 * size) / (double)(inode.i_size));
fprintf(stdout, "Inode size: %d ", inode.inode_isize);
fprintf(stdout, "Extent size: %u ", inode.extent_isize);
fprintf(stdout, "Xattr size: %u\n", inode.xattr_isize);
- fprintf(stdout, "File size: %" PRIu64" ", inode.i_size);
- fprintf(stdout, "On-disk size: %" PRIu64 " ", size);
- fprintf(stdout, "Compression ratio: %.2f%%\n",
- (double)(100 * size) / (double)(inode.i_size));
fprintf(stdout, "Uid: %u Gid: %u ", inode.i_uid, inode.i_gid);
fprintf(stdout, "Access: %04o/%s\n", access_mode, access_mode_str);
fprintf(stdout, "Timestamp: %s.%09d\n", timebuf, inode.i_ctime_nsec);
diff --git a/include/erofs/inode.h b/include/erofs/inode.h
index a73676212ccf..d5343c242aee 100644
--- a/include/erofs/inode.h
+++ b/include/erofs/inode.h
@@ -10,6 +10,7 @@
#include "erofs/internal.h"
+unsigned char erofs_mode_to_ftype(umode_t mode);
void erofs_inode_manager_init(void);
unsigned int erofs_iput(struct erofs_inode *inode);
erofs_nid_t erofs_lookupnid(struct erofs_inode *inode);
diff --git a/lib/inode.c b/lib/inode.c
index 6597a26f7ac4..855a0383f31e 100644
--- a/lib/inode.c
+++ b/lib/inode.c
@@ -37,7 +37,7 @@ static unsigned char erofs_ftype_by_mode[S_IFMT >> S_SHIFT] = {
[S_IFLNK >> S_SHIFT] = EROFS_FT_SYMLINK,
};
-static unsigned char erofs_mode_to_ftype(umode_t mode)
+unsigned char erofs_mode_to_ftype(umode_t mode)
{
return erofs_ftype_by_mode[(mode & S_IFMT) >> S_SHIFT];
}
--
2.24.4
More information about the Linux-erofs
mailing list