f2fs: judge whether discard_unit is section only when have CONFIG_BLK_DEV_ZONED
authorYangtao Li <frank.li@vivo.com>
Tue, 29 Nov 2022 12:29:28 +0000 (20:29 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 13 Sep 2023 07:42:56 +0000 (09:42 +0200)
[ Upstream commit b5a711acab305e04278c136c841ba37c589c16a1 ]

The current logic, regardless of whether CONFIG_BLK_DEV_ZONED
is enabled or not, will judge whether discard_unit is SECTION,
when f2fs_sb_has_blkzoned.

In fact, when CONFIG_BLK_DEV_ZONED is not enabled, this judgment
is a path that will never be accessed. At this time, -EINVAL will
be returned in the parse_options function, accompanied by the
message "Zoned block device support is not enabled".

Let's wrap this discard_unit judgment with CONFIG_BLK_DEV_ZONED.

Signed-off-by: Yangtao Li <frank.li@vivo.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Stable-dep-of: 2bd4df8fcbc7 ("f2fs: Only lfs mode is allowed with zoned block device feature")
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/f2fs/super.c

index b6dad38..d616ce3 100644 (file)
@@ -1285,19 +1285,18 @@ default_check:
         * zone alignment optimization. This is optional for host-aware
         * devices, but mandatory for host-managed zoned block devices.
         */
-#ifndef CONFIG_BLK_DEV_ZONED
-       if (f2fs_sb_has_blkzoned(sbi)) {
-               f2fs_err(sbi, "Zoned block device support is not enabled");
-               return -EINVAL;
-       }
-#endif
        if (f2fs_sb_has_blkzoned(sbi)) {
+#ifdef CONFIG_BLK_DEV_ZONED
                if (F2FS_OPTION(sbi).discard_unit !=
                                                DISCARD_UNIT_SECTION) {
                        f2fs_info(sbi, "Zoned block device doesn't need small discard, set discard_unit=section by default");
                        F2FS_OPTION(sbi).discard_unit =
                                        DISCARD_UNIT_SECTION;
                }
+#else
+               f2fs_err(sbi, "Zoned block device support is not enabled");
+               return -EINVAL;
+#endif
        }
 
 #ifdef CONFIG_F2FS_FS_COMPRESSION