f2fs: Do not allow adaptive mode for host-managed zoned block devices
authorDamien Le Moal <damien.lemoal@wdc.com>
Fri, 28 Oct 2016 08:45:04 +0000 (17:45 +0900)
committerJaegeuk Kim <jaegeuk@kernel.org>
Wed, 23 Nov 2016 20:11:20 +0000 (12:11 -0800)
The LFS mode is mandatory for host-managed zoned block devices as
update in place optimizations are not possible for segments in
sequential zones.

Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/super.c

index 7bb0b36ae5e6246f93c79df7d907e29eaf16c846..3312284aa2454de55b34c77ed17b06587491cc27 100644 (file)
@@ -518,6 +518,13 @@ static int parse_options(struct super_block *sb, char *options)
                                return -ENOMEM;
                        if (strlen(name) == 8 &&
                                        !strncmp(name, "adaptive", 8)) {
+                               if (f2fs_sb_mounted_blkzoned(sb)) {
+                                       f2fs_msg(sb, KERN_WARNING,
+                                                "adaptive mode is not allowed with "
+                                                "zoned block device feature");
+                                       kfree(name);
+                                       return -EINVAL;
+                               }
                                set_opt_mode(sbi, F2FS_MOUNT_ADAPTIVE);
                        } else if (strlen(name) == 3 &&
                                        !strncmp(name, "lfs", 3)) {