On Fri, Mar 25, 2022 at 08:22:20PM +0800, Jeffle Xu wrote: > Similar to the multi device mode, erofs could be mounted from multiple > blob files (one bootstrap blob file and optional multiple data blob > files). In this case, each device slot contains the path of > corresponding data blob file. > > Registers corresponding cookie context for each data blob file. > > Signed-off-by: Jeffle Xu <jefflexu@xxxxxxxxxxxxxxxxx> > --- > fs/erofs/internal.h | 1 + > fs/erofs/super.c | 30 ++++++++++++++++++++++-------- > 2 files changed, 23 insertions(+), 8 deletions(-) > > diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h > index 6537ededed51..94a118caf580 100644 > --- a/fs/erofs/internal.h > +++ b/fs/erofs/internal.h > @@ -52,6 +52,7 @@ struct erofs_device_info { > struct block_device *bdev; > struct dax_device *dax_dev; Place struct erofs_fscache *fscache; > u64 dax_part_off; > + struct erofs_fscache *blob; Instead here since `blob' is also nydus-specific. Need to update the subject and commit message too. > > u32 blocks; > u32 mapped_blkaddr; > diff --git a/fs/erofs/super.c b/fs/erofs/super.c > index de5aeda4aea0..9a6f35e0c22b 100644 > --- a/fs/erofs/super.c > +++ b/fs/erofs/super.c > @@ -259,15 +259,28 @@ static int erofs_init_devices(struct super_block *sb, > } > dis = ptr + erofs_blkoff(pos); > > - bdev = blkdev_get_by_path(dif->path, > - FMODE_READ | FMODE_EXCL, > - sb->s_type); > - if (IS_ERR(bdev)) { > - err = PTR_ERR(bdev); > - break; > + if (IS_ENABLED(CONFIG_EROFS_FS_ONDEMAND) && > + erofs_is_nodev_mode(sb)) { > + struct erofs_fscache *blob; Same here. Thanks, Gao Xiang