f2fs: Only lfs mode is allowed with zoned block device feature
authorChunhai Guo <guochunhai@vivo.com>
Thu, 3 Aug 2023 14:28:42 +0000 (22:28 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 14 Aug 2023 20:41:09 +0000 (13:41 -0700)
Now f2fs support four block allocation modes: lfs, adaptive,
fragment:segment, fragment:block. Only lfs mode is allowed with zoned block
device feature.

Fixes: 6691d940b0e0 ("f2fs: introduce fragment allocation mode mount option")
Signed-off-by: Chunhai Guo <guochunhai@vivo.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/super.c

index 30883beb750a59296fc2fc93f9cdb3db51cac162..26add77f906219e17715ac141edef89349773765 100644 (file)
@@ -862,11 +862,6 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount)
                        if (!name)
                                return -ENOMEM;
                        if (!strcmp(name, "adaptive")) {
-                               if (f2fs_sb_has_blkzoned(sbi)) {
-                                       f2fs_warn(sbi, "adaptive mode is not allowed with zoned block device feature");
-                                       kfree(name);
-                                       return -EINVAL;
-                               }
                                F2FS_OPTION(sbi).fs_mode = FS_MODE_ADAPTIVE;
                        } else if (!strcmp(name, "lfs")) {
                                F2FS_OPTION(sbi).fs_mode = FS_MODE_LFS;
@@ -1331,6 +1326,11 @@ default_check:
                        F2FS_OPTION(sbi).discard_unit =
                                        DISCARD_UNIT_SECTION;
                }
+
+               if (F2FS_OPTION(sbi).fs_mode != FS_MODE_LFS) {
+                       f2fs_info(sbi, "Only lfs mode is allowed with zoned block device feature");
+                       return -EINVAL;
+               }
 #else
                f2fs_err(sbi, "Zoned block device support is not enabled");
                return -EINVAL;