f2fs: add compression feature check for all compress mount opt
authorYangtao Li <frank.li@vivo.com>
Sun, 19 Mar 2023 07:51:30 +0000 (15:51 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 4 Apr 2023 20:57:29 +0000 (13:57 -0700)
Opt_compress_chksum, Opt_compress_mode and Opt_compress_cache
lack the necessary check to see if the image supports compression,
let's add it.

Signed-off-by: Yangtao Li <frank.li@vivo.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/super.c

index 50d23dc..7d0202f 100644 (file)
@@ -1179,9 +1179,17 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount)
                        kfree(name);
                        break;
                case Opt_compress_chksum:
+                       if (!f2fs_sb_has_compression(sbi)) {
+                               f2fs_info(sbi, "Image doesn't support compression");
+                               break;
+                       }
                        F2FS_OPTION(sbi).compress_chksum = true;
                        break;
                case Opt_compress_mode:
+                       if (!f2fs_sb_has_compression(sbi)) {
+                               f2fs_info(sbi, "Image doesn't support compression");
+                               break;
+                       }
                        name = match_strdup(&args[0]);
                        if (!name)
                                return -ENOMEM;
@@ -1196,6 +1204,10 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount)
                        kfree(name);
                        break;
                case Opt_compress_cache:
+                       if (!f2fs_sb_has_compression(sbi)) {
+                               f2fs_info(sbi, "Image doesn't support compression");
+                               break;
+                       }
                        set_opt(sbi, COMPRESS_CACHE);
                        break;
 #else