[PATCH 1/2] erofs-utils: mkfs: correct sb_size if metabox is on
Gao Xiang
hsiangkao at linux.alibaba.com
Fri Sep 12 05:28:26 AEST 2025
Fixes: 4f7aa6b8fb7f ("erofs-utils: lib: introduce API helpers to prepare mkfs context")
Signed-off-by: Gao Xiang <hsiangkao at linux.alibaba.com>
---
lib/importer.c | 10 ++++------
lib/metabox.c | 4 +++-
mkfs/main.c | 1 +
3 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/lib/importer.c b/lib/importer.c
index 9c57c07..bb29bd0 100644
--- a/lib/importer.c
+++ b/lib/importer.c
@@ -55,12 +55,10 @@ int erofs_importer_init(struct erofs_importer *im)
goto out_err;
}
- if (cfg.c_mkfs_pclustersize_metabox >= 0) {
- subsys = "metabox";
- err = erofs_metabox_init(sbi);
- if (err)
- goto out_err;
- }
+ subsys = "metabox";
+ err = erofs_metabox_init(sbi);
+ if (err)
+ goto out_err;
if (cfg.c_fragments) {
subsys = "dedupe_ext";
diff --git a/lib/metabox.c b/lib/metabox.c
index abde5e6..bf188f6 100644
--- a/lib/metabox.c
+++ b/lib/metabox.c
@@ -30,6 +30,9 @@ int erofs_metabox_init(struct erofs_sb_info *sbi)
struct erofs_metaboxmgr *m2gr;
int ret;
+ if (!erofs_sb_has_metabox(sbi))
+ return 0;
+
m2gr = malloc(sizeof(*m2gr));
if (!m2gr)
return -ENOMEM;
@@ -41,7 +44,6 @@ int erofs_metabox_init(struct erofs_sb_info *sbi)
m2gr->vf = (struct erofs_vfile){ .fd = ret };
m2gr->bmgr = erofs_buffer_init(sbi, 0, &m2gr->vf);
if (m2gr->bmgr) {
- erofs_sb_set_metabox(sbi);
sbi->m2gr = m2gr;
return 0;
}
diff --git a/mkfs/main.c b/mkfs/main.c
index 3dd5815..c328e0a 100644
--- a/mkfs/main.c
+++ b/mkfs/main.c
@@ -1444,6 +1444,7 @@ static int mkfs_parse_options_cfg(struct erofs_importer_params *params,
}
cfg.c_mkfs_pclustersize_metabox = pclustersize_metabox;
cfg.c_mkfs_metabox_algid = metabox_algorithmid;
+ erofs_sb_set_metabox(&g_sbi);
}
if (has_timestamp && cfg.c_timeinherit == TIMESTAMP_UNSPECIFIED)
--
2.43.5
More information about the Linux-erofs
mailing list