[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20190724130656.29436-1-icenowy@aosc.io>
Date: Wed, 24 Jul 2019 21:06:56 +0800
From: Icenowy Zheng <icenowy@...c.io>
To: Jaegeuk Kim <jaegeuk@...nel.org>, Chao Yu <yuchao0@...wei.com>
Cc: linux-f2fs-devel@...ts.sourceforge.net,
linux-kernel@...r.kernel.org, Icenowy Zheng <icenowy@...c.io>
Subject: [PATCH] f2fs: use EINVAL for invalid superblock
The kernel mount_block_root() function expects -EACESS or -EINVAL for a
unmountable filesystem when trying to mount the root with different
filesystem types.
However, in 5.3-rc1 the behavior when F2FS code cannot find valid block
changed to return -EFSCORRUPTED(-EUCLEAN), and this error code makes
mount_block_root() fail when trying to probe F2FS. As invalid
superblocks mean the filesystem cannot be recognized as F2FS (it might
be another FS), returning -EINVAL seems more reasonable, and other
filesystems also do this.
Change back the return value to -EINVAL when no valid superblocks are
found.
Fixes: 10f966bbf521 ("f2fs: use generic EFSBADCRC/EFSCORRUPTED")
Signed-off-by: Icenowy Zheng <icenowy@...c.io>
---
This commit fixes a regression introduced in v5.3-rc1, which leads to
btrfs / cannot be mounted if no initrd is used and both f2fs and btrfs
are built-in.
fs/f2fs/super.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index 6de6cda44031..949309b9f1b8 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -2873,7 +2873,7 @@ static int read_raw_super_block(struct f2fs_sb_info *sbi,
if (sanity_check_raw_super(sbi, bh)) {
f2fs_err(sbi, "Can't find valid F2FS filesystem in %dth superblock",
block + 1);
- err = -EFSCORRUPTED;
+ err = -EINVAL;
brelse(bh);
continue;
}
--
2.21.0
Powered by blists - more mailing lists