Re: [PATCH] erofs: fix the per-CPU buffer decompression for small output size

From: Yue Hu
Date: Wed Oct 13 2021 - 09:10:35 EST


Hi Xiang,

On Wed, 13 Oct 2021 19:51:55 +0800
Gao Xiang <hsiangkao@xxxxxxxxxxxxxxxxx> wrote:

> Hi Yue,
>
> On Wed, Oct 13, 2021 at 05:29:05PM +0800, Yue Hu wrote:
> > From: Yue Hu <huyue2@xxxxxxxxxx>
> >
> > Note that z_erofs_lz4_decompress() will return a positive value if
> > decompression succeeds. However, we do not copy_from_pcpubuf() due
> > to !ret. Let's fix it.
> >
> > Signed-off-by: Yue Hu <huyue2@xxxxxxxxxx>
>
> Thanks for catching this. This is a valid issue, but it has no real
> impact to the current kernels since such pcluster in practice will be
> !inplace_io and trigger "if (nrpages_out == 1 && !rq->inplace_io) {"
> above for upstream strategies.
>
> Our customized lz4 implementation will return 0 if success instead, so
> it has no issue to our previous products as well.

Yes, i just find the issue when i try to implement a new feature of
tail-packing inline compressed data. No problem in my current version.

Thanks.

>
> For such cases, how about updating z_erofs_lz4_decompress() to return
> 0 if success instead rather than outputsize. Since I'll return 0 if
> success for LZMA as well.
>
> Thanks,
> Gao Xiang