[PATCH] erofs-utils: add clusterofs zero check to write_uncompressed_extent()

Yue Hu zbestahu at gmail.com
Wed Aug 18 00:10:46 AEST 2021


Hi Xiang,

On Tue, 17 Aug 2021 21:13:14 +0800
Gao Xiang <hsiangkao at linux.alibaba.com> wrote:

> Hi Yue,
> 
> On Tue, Aug 17, 2021 at 12:06:04PM +0800, Yue Hu wrote:
> > From: Yue Hu <huyue2 at yulong.com>
> > 
> > No need to reset clusterofs to 0 if it's already 0. Acturally, we also
> > observed that case frequently. Let's avoid it.
> > 
> > Signed-off-by: Yue Hu <huyue2 at yulong.com>
> > ---
> >  lib/compress.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/lib/compress.c b/lib/compress.c
> > index 40723a1..a8ebbc1 100644
> > --- a/lib/compress.c
> > +++ b/lib/compress.c
> > @@ -130,7 +130,7 @@ static int write_uncompressed_extent(struct z_erofs_vle_compress_ctx *ctx,
> >  	unsigned int count;
> >  
> >  	/* reset clusterofs to 0 if permitted */
> > -	if (!erofs_sb_has_lz4_0padding() &&
> > +	if (!erofs_sb_has_lz4_0padding() && ctx->clusterofs &&  
> 
> Also out of curiosity, which means erofs is used without lz4 0padding?

Yes. We are using legacy compression layout now.

> That way is not recommended now anyway, since it forbids erofs in-place
> decompression (only inplace I/O works instead.)

Thanks for the reminding.

> 
> Actually we could make clusterofs aligned with 0 for 0padding cases as
> well, but in that cases, we need to recompress the previous pcluster
> with new trimmed size rather than just like this.

Got it. 
BTW, I think the information should be useful for me to understand the code further.

Thanks.

> 
> Thanks,
> Gao Xiang
> 
> >  	    ctx->head >= ctx->clusterofs) {
> >  		ctx->head -= ctx->clusterofs;
> >  		*len += ctx->clusterofs;
> > -- 
> > 1.9.1  



More information about the Linux-erofs mailing list