[PATCH] erofs-utils: dump: add missing compat features and separate feature display

Gao Xiang hsiangkao at linux.alibaba.com
Wed Feb 25 19:50:05 AEDT 2026



On 2026/2/25 16:46, Yifan Zhao wrote:
> 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(compat)' and 'Filesystem features(incompat)'

`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..1c4e8b2 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(compat):                  ");

Same here.

>   	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(incompat):                ");

Same here.

Thanks,
Gao Xiang


More information about the Linux-erofs mailing list