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

Gao Xiang hsiangkao at linux.alibaba.com
Mon Mar 28 20:48:26 AEDT 2022


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 at 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


More information about the Linux-erofs mailing list