On 04/05, Chao Yu wrote:
On 2023/3/31 0:49, Yangtao Li wrote:
+#ifdef CONFIG_F2FS_FS_LZ4HC
+ unsigned char level = F2FS_I(cc->inode)->i_compress_level;
if (level)
len = LZ4_compress_HC(cc->rbuf, cc->cbuf->cdata, cc->rlen,
cc->clen, level, cc->private);
else
[snip]
#endif
[snip]
+ len = LZ4_compress_default(cc->rbuf, cc->cbuf->cdata, cc->rlen,
It's weired that whole else xxx; statement is split by #endif.
What about?
unsigned char level = 0;
#if
...
#endif
if (!level)
len = LZ4_compress_default()
I modified like this.
--- a/fs/f2fs/compress.c
+++ b/fs/f2fs/compress.c
@@ -266,17 +266,19 @@ static void lz4_destroy_compress_ctx(struct compress_ctx *cc)
static int lz4_compress_pages(struct compress_ctx *cc)
{
- int len;
-#ifdef CONFIG_F2FS_FS_LZ4HC
+ int len = -EINVAL;
unsigned char level = F2FS_I(cc->inode)->i_compress_level;
- if (level)
+ if (!level)
+ len = LZ4_compress_default(cc->rbuf, cc->cbuf->cdata, cc->rlen,
+ cc->clen, cc->private);
+#ifdef CONFIG_F2FS_FS_LZ4HC
+ else
len = LZ4_compress_HC(cc->rbuf, cc->cbuf->cdata, cc->rlen,
cc->clen, level, cc->private);
- else
#endif
- len = LZ4_compress_default(cc->rbuf, cc->cbuf->cdata, cc->rlen,
- cc->clen, cc->private);
+ if (len < 0)
+ return len;
if (!len)
return -EAGAIN;