f2fs: compress: fix to set zstd compress level correctly
authorChao Yu <chao@kernel.org>
Sat, 10 Jul 2021 00:21:41 +0000 (08:21 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 13 Jul 2021 23:10:35 +0000 (16:10 -0700)
As 5kft reported in [1]:

set_compress_context() should set compress level into .i_compress_flag
for zstd as well as lz4hc, otherwise, zstd compressor will still use
default zstd compress level during compression, fix it.

[1] https://lore.kernel.org/linux-f2fs-devel/8e29f52b-6b0d-45ec-9520-e63eb254287a@www.fastmail.com/T/#u

Fixes: 3fde13f817e2 ("f2fs: compress: support compress level")
Reported-by: 5kft <5kft@5kft.org>
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/f2fs.h

index 49d35e2..867f2c5 100644 (file)
@@ -4142,7 +4142,8 @@ static inline void set_compress_context(struct inode *inode)
                                1 << COMPRESS_CHKSUM : 0;
        F2FS_I(inode)->i_cluster_size =
                        1 << F2FS_I(inode)->i_log_cluster_size;
-       if (F2FS_I(inode)->i_compress_algorithm == COMPRESS_LZ4 &&
+       if ((F2FS_I(inode)->i_compress_algorithm == COMPRESS_LZ4 ||
+               F2FS_I(inode)->i_compress_algorithm == COMPRESS_ZSTD) &&
                        F2FS_OPTION(sbi).compress_level)
                F2FS_I(inode)->i_compress_flag |=
                                F2FS_OPTION(sbi).compress_level <<