[PATCH 2/3] erofs-utils: lib: ibmgr should be assigned in advance
Gao Xiang
hsiangkao at linux.alibaba.com
Fri Nov 7 21:06:08 AEDT 2025
Otherwise, metabox won't keep several types of inodes.
Fixes: 7928074b7643 ("erofs-utils: introduce metadata compression [metabox]")
Signed-off-by: Gao Xiang <hsiangkao at linux.alibaba.com>
---
lib/inode.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/lib/inode.c b/lib/inode.c
index f9b5ee997877..09b2e507c609 100644
--- a/lib/inode.c
+++ b/lib/inode.c
@@ -903,8 +903,7 @@ static int erofs_prepare_inode_buffer(struct erofs_importer *im,
{
const struct erofs_importer_params *params = im->params;
struct erofs_sb_info *sbi = im->sbi;
- struct erofs_bufmgr *bmgr = sbi->bmgr;
- struct erofs_bufmgr *ibmgr = bmgr;
+ struct erofs_bufmgr *ibmgr;
unsigned int inodesize;
struct erofs_buffer_head *bh, *ibh;
@@ -922,6 +921,13 @@ static int erofs_prepare_inode_buffer(struct erofs_importer *im,
if (inode->extent_isize)
inodesize = roundup(inodesize, 8) + inode->extent_isize;
+ if (!erofs_is_special_identifier(inode->i_srcpath) &&
+ erofs_metabox_bmgr(sbi))
+ inode->in_metabox = true;
+
+ if (inode->in_metabox)
+ ibmgr = erofs_metabox_bmgr(sbi) ?: sbi->bmgr;
+
if (inode->datalayout == EROFS_INODE_FLAT_PLAIN)
goto noinline;
@@ -942,12 +948,6 @@ static int erofs_prepare_inode_buffer(struct erofs_importer *im,
inode->datalayout = EROFS_INODE_FLAT_PLAIN;
}
- if (!erofs_is_special_identifier(inode->i_srcpath) &&
- erofs_metabox_bmgr(sbi))
- inode->in_metabox = true;
-
- if (inode->in_metabox)
- ibmgr = erofs_metabox_bmgr(sbi) ?: bmgr;
bh = erofs_balloc(ibmgr, INODE, inodesize, inode->idata_size);
if (bh == ERR_PTR(-ENOSPC)) {
int ret;
--
2.43.5
More information about the Linux-erofs
mailing list