Hi Jaegeuk, I think we need this patch in order to avoid writebacking incomplete data compressed by zstd.
On 2020/5/8 9:16, Chao Yu wrote: > During zstd compression, ZSTD_endStream() may return non-zero value > because distination buffer is full, but there is still compressed data > remained in intermediate buffer, it means that zstd algorithm can not > save at last one block space, let's just writeback raw data instead of > compressed one, this can fix data corruption when decompressing > incomplete stored compression data. > Fixes: 50cfa66f0de0 ("f2fs: compress: support zstd compress algorithm") Thanks, > Signed-off-by: Daeho Jeong <daehoje...@google.com> > Signed-off-by: Chao Yu <yuch...@huawei.com> > --- > fs/f2fs/compress.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c > index c22cc0d37369..5e4947250262 100644 > --- a/fs/f2fs/compress.c > +++ b/fs/f2fs/compress.c > @@ -358,6 +358,13 @@ static int zstd_compress_pages(struct compress_ctx *cc) > return -EIO; > } > > + /* > + * there is compressed data remained in intermediate buffer due to > + * no more space in cbuf.cdata > + */ > + if (ret) > + return -EAGAIN; > + > cc->clen = outbuf.pos; > return 0; > } >