On Fri, Mar 25, 2022 at 08:22:11PM +0800, Jeffle Xu wrote: > Until then erofs is exactly blockdev based filesystem. In other using > scenarios (e.g. container image), erofs needs to run upon files. > > This patch set is going to introduces a new nodev mode, in which erofs > could be mounted from a bootstrap blob file containing complete erofs > image. > > Add a helper checking which mode erofs works in. > > Signed-off-by: Jeffle Xu <jefflexu@xxxxxxxxxxxxxxxxx> > --- > fs/erofs/internal.h | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h > index e424293f47a2..1486e2573667 100644 > --- a/fs/erofs/internal.h > +++ b/fs/erofs/internal.h > @@ -161,6 +161,11 @@ struct erofs_sb_info { > #define set_opt(opt, option) ((opt)->mount_opt |= EROFS_MOUNT_##option) > #define test_opt(opt, option) ((opt)->mount_opt & EROFS_MOUNT_##option) > > +static inline bool erofs_is_nodev_mode(struct super_block *sb) I've seen a lot of such + if (IS_ENABLED(CONFIG_EROFS_FS_ONDEMAND) && + erofs_is_nodev_mode(sb)) { usages in the followup patches, which makes me wonder if the configuration can be checked in the helper as well. Also maybe rename it as erofs_is_fscache_mode()? Thanks, Gao Xiang > +{ > + return !sb->s_bdev; > +} > + > enum { > EROFS_ZIP_CACHE_DISABLED, > EROFS_ZIP_CACHE_READAHEAD, > -- > 2.27.0