[PATCH 1/2] erofs-utils: dump: read packed inode only by valid packed_nid
Gao Xiang
hsiangkao at linux.alibaba.com
Fri Jun 2 19:43:09 AEST 2023
On 2023/6/2 17:37, Yue Hu wrote:
> From: Yue Hu <huyue2 at coolpad.com>
>
> Since dedupe feature is also using the same feature bit as fragments.
> Meanwhile, add missing dedupe feature to feature_lists[].
>
> Fixes: a6336feefe37 ("erofs-utils: dump: support fragments")
> Signed-off-by: Yue Hu <huyue2 at coolpad.com>
We should check both
erofs_sb_has_fragments() && sbi.packed_nid > 0 here.
Thanks,
Gao Xiang
> ---
> dump/main.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/dump/main.c b/dump/main.c
> index fd1923f..b9aa0f5 100644
> --- a/dump/main.c
> +++ b/dump/main.c
> @@ -99,6 +99,7 @@ static struct erofsdump_feature feature_lists[] = {
> { false, EROFS_FEATURE_INCOMPAT_DEVICE_TABLE, "device_table" },
> { false, EROFS_FEATURE_INCOMPAT_ZTAILPACKING, "ztailpacking" },
> { false, EROFS_FEATURE_INCOMPAT_FRAGMENTS, "fragments" },
> + { false, EROFS_FEATURE_INCOMPAT_DEDUPE, "dedupe" },
> };
>
> static int erofsdump_readdir(struct erofs_dir_context *ctx);
> @@ -273,7 +274,7 @@ static int erofsdump_read_packed_inode(void)
> erofs_off_t occupied_size = 0;
> struct erofs_inode vi = { .nid = sbi.packed_nid };
>
> - if (!erofs_sb_has_fragments())
> + if (!sbi.packed_nid)
> return 0;
>
> err = erofs_read_inode_from_disk(&vi);
> @@ -605,7 +606,7 @@ static void erofsdump_show_superblock(void)
> sbi.xattr_blkaddr);
> fprintf(stdout, "Filesystem root nid: %llu\n",
> sbi.root_nid | 0ULL);
> - if (erofs_sb_has_fragments())
> + if (sbi.packed_nid > 0)
> fprintf(stdout, "Filesystem packed nid: %llu\n",
> sbi.packed_nid | 0ULL);
> fprintf(stdout, "Filesystem inode count: %llu\n",
More information about the Linux-erofs
mailing list