[PATCH v2] erofs-utils: dump: add missing compat features and separate feature display
Yifan Zhao
zhaoyifan28 at huawei.com
Wed Feb 25 21:06:40 AEDT 2026
Add three missing EROFS_FEATURE_COMPAT_* entries to feature_lists:
- EROFS_FEATURE_COMPAT_SHARED_EA_IN_METABOX
- EROFS_FEATURE_COMPAT_PLAIN_XATTR_PFX
- EROFS_FEATURE_COMPAT_ISHARE_XATTRS
Also separate the feature output into two lines:
'Filesystem features(compatible)' and
'Filesystem features(incompatible)' for better readability.
Signed-off-by: Yifan Zhao <zhaoyifan28 at huawei.com>
---
dump/main.c | 22 +++++++++++++++++-----
1 file changed, 17 insertions(+), 5 deletions(-)
diff --git a/dump/main.c b/dump/main.c
index 8422bb9..9879b6c 100644
--- a/dump/main.c
+++ b/dump/main.c
@@ -96,6 +96,9 @@ static struct erofsdump_feature feature_lists[] = {
{ true, 0, EROFS_FEATURE_COMPAT_SB_CHKSUM, "sb_csum" },
{ true, 0, EROFS_FEATURE_COMPAT_MTIME, "mtime" },
{ true, 0, EROFS_FEATURE_COMPAT_XATTR_FILTER, "xattr_filter" },
+ { true, 0, EROFS_FEATURE_COMPAT_SHARED_EA_IN_METABOX, "shared_ea_in_metabox" },
+ { true, 0, EROFS_FEATURE_COMPAT_PLAIN_XATTR_PFX, "plain_xattr_pfx" },
+ { true, 0, EROFS_FEATURE_COMPAT_ISHARE_XATTRS, "ishare_xattrs" },
{ false, 504U, EROFS_FEATURE_INCOMPAT_LZ4_0PADDING, "lz4_0padding" },
{ false, 513U, EROFS_FEATURE_INCOMPAT_COMPR_CFGS, "compr_cfgs" },
{ false, 513U, EROFS_FEATURE_INCOMPAT_BIG_PCLUSTER, "big_pcluster" },
@@ -675,12 +678,21 @@ static void erofsdump_show_superblock(void)
g_sbi.inos | 0ULL);
fprintf(stdout, "Filesystem created: %s",
ctime(&time));
- fprintf(stdout, "Filesystem features: ");
+ fprintf(stdout, "Filesystem features(compatible): ");
for (i = 0; i < ARRAY_SIZE(feature_lists); i++) {
- u32 feat = le32_to_cpu(feature_lists[i].compat ?
- g_sbi.feature_compat :
- g_sbi.feature_incompat);
- if (feat & feature_lists[i].flag) {
+ if (!feature_lists[i].compat)
+ continue;
+ if (le32_to_cpu(g_sbi.feature_compat) & feature_lists[i].flag) {
+ fprintf(stdout, "%s ", feature_lists[i].name);
+ if (feature_lists[i].lkver > minkver)
+ minkver = feature_lists[i].lkver;
+ }
+ }
+ fprintf(stdout, "\nFilesystem features(incompatible): ");
+ for (i = 0; i < ARRAY_SIZE(feature_lists); i++) {
+ if (feature_lists[i].compat)
+ continue;
+ if (le32_to_cpu(g_sbi.feature_incompat) & feature_lists[i].flag) {
fprintf(stdout, "%s ", feature_lists[i].name);
if (feature_lists[i].lkver > minkver)
minkver = feature_lists[i].lkver;
--
2.47.3
More information about the Linux-erofs
mailing list