[PATCH 2/3] erofs-utils: lib: ibmgr should be assigned in advance
Hongbo Li
lihongbo22 at huawei.com
Tue Nov 11 13:01:53 AEDT 2025
On 2025/11/7 18:06, Gao Xiang wrote:
> 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>
Reviewed-by: Hongbo Li <lihongbo22 at huawei.com>
Thanks,
Hongbo
> ---
> 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;
More information about the Linux-erofs
mailing list