aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChao Yu <chao@kernel.org>2023-02-02 15:56:25 +0800
committerJaegeuk Kim <jaegeuk@kernel.org>2023-02-07 10:37:19 -0800
commitddbde273935968419d6146258cdcf63df35e2847 (patch)
treef77aeaa20314ba6367931c1a98b048c01f6d127e
parent77bf7ed29f1dd1341079913f3b36fc62f812c4f5 (diff)
downloadf2fs-tools-ddbde273935968419d6146258cdcf63df35e2847.tar.gz
fsck.f2fs: relocate chksum verification step during f2fs_do_mount()
Keep sanity_check_raw_super flow in fsck.f2fs being consistent w/ sanity_check_raw_super() in f2fs kernel module, otherwise, it outputs different error information when mounting/fscking the same image which contains corrupted superblock. Signed-off-by: Chao Yu <chao@kernel.org> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
-rw-r--r--fsck/mount.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/fsck/mount.c b/fsck/mount.c
index 25b7f3b..2a87759 100644
--- a/fsck/mount.c
+++ b/fsck/mount.c
@@ -866,16 +866,16 @@ int sanity_check_raw_super(struct f2fs_super_block *sb, enum SB_ADDR sb_addr)
unsigned int segment_count, segs_per_sec, secs_per_zone, segs_per_zone;
unsigned int total_sections, blocks_per_seg;
- if ((get_sb(feature) & F2FS_FEATURE_SB_CHKSUM) &&
- verify_sb_chksum(sb))
- return -1;
-
if (F2FS_SUPER_MAGIC != get_sb(magic)) {
MSG(0, "Magic Mismatch, valid(0x%x) - read(0x%x)\n",
F2FS_SUPER_MAGIC, get_sb(magic));
return -1;
}
+ if ((get_sb(feature) & F2FS_FEATURE_SB_CHKSUM) &&
+ verify_sb_chksum(sb))
+ return -1;
+
blocksize = 1 << get_sb(log_blocksize);
if (F2FS_BLKSIZE != blocksize) {
MSG(0, "Invalid blocksize (%u), supports only 4KB\n",