Re: [PATCH v6 19/22] erofs: register cookie context for data blobs

Gao Xiang
2022-03-28T09:48:40Z

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@linux.alibaba.com>
> ---
> 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