[PATCH v1 1/2] erofs-utils: Relax the hardchecks on the blocksize

Gao Xiang hsiangkao at linux.alibaba.com
Thu Aug 31 09:34:34 AEST 2023


Hi Sandeep,

On 2023/8/31 07:16, Sandeep Dhavale wrote:
> As erofs-utils supports different block sizes upto
> EROFS_MAX_BLOCK_SIZE, relax the checks so same tools
> can be used to create images for platforms where
> page size can be greater than 4096.
> 
> Signed-off-by: Sandeep Dhavale <dhavale at google.com>
> ---
>   lib/namei.c | 2 --
>   mkfs/main.c | 9 +++++----
>   2 files changed, 5 insertions(+), 6 deletions(-)
> 
> diff --git a/lib/namei.c b/lib/namei.c
> index 2bb1d4c..45dbcd3 100644
> --- a/lib/namei.c
> +++ b/lib/namei.c
> @@ -144,8 +144,6 @@ int erofs_read_inode_from_disk(struct erofs_inode *vi)
>   		vi->u.chunkbits = sbi->blkszbits +
>   			(vi->u.chunkformat & EROFS_CHUNK_FORMAT_BLKBITS_MASK);
>   	} else if (erofs_inode_is_data_compressed(vi->datalayout)) {
> -		if (erofs_blksiz(vi->sbi) != EROFS_MAX_BLOCK_SIZE)
> -			return -EOPNOTSUPP;
>   		return z_erofs_fill_inode(vi);
>   	}
>   	return 0;
> diff --git a/mkfs/main.c b/mkfs/main.c
> index c03a7a8..37bf658 100644
> --- a/mkfs/main.c
> +++ b/mkfs/main.c
> @@ -550,10 +550,11 @@ static int mkfs_parse_options_cfg(int argc, char *argv[])
>   		cfg.c_dbg_lvl = EROFS_ERR;
>   		cfg.c_showprogress = false;
>   	}
> -	if (cfg.c_compr_alg[0] && erofs_blksiz(&sbi) != EROFS_MAX_BLOCK_SIZE) {
> -		erofs_err("compression is unsupported for now with block size %u",
> -			  erofs_blksiz(&sbi));
> -		return -EINVAL;
> +	if (cfg.c_compr_alg[0] && erofs_blksiz(&sbi) != getpagesize()) {
> +		erofs_warn("subpage blocksize with compression is not yet "
> +			"supported. Compressed image will only work with "
> +			"arch pagesize = blocksize = %u bytes",
> +			erofs_blksiz(&sbi));
>   	}

Thanks for the patches.

I'm fine to relax  EROFS_MAX_BLOCK_SIZE check, yet could we
add a check as erofs_blksiz <= EROFS_MAX_BLOCK_SIZE somewhere?

Otherwise, we could suffer from stack overflow
(if EROFS_MAX_BLOCK_SIZE is outdated or somewhat small...)

Thanks,
Gao Xiang


More information about the Linux-erofs mailing list