This patch add a mismatch check between segment and section in
sanity_check_raw_super.

Signed-off-by: Yunlei He <heyun...@huawei.com>
---
 fs/f2fs/super.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index c3070c1..b51a690 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -1036,6 +1036,17 @@ static int sanity_check_raw_super(struct super_block *sb,
                return 1;
        }
 
+       /* check seg # corresponding to sec # */
+       if (le32_to_cpu(raw_super->segment_count)
+                       * le32_to_cpu(raw_super->segs_per_sec)
+                               != le32_to_cpu(raw_super->section_count)) {
+               f2fs_msg(sb, KERN_INFO,
+                       "Mismatch seg num (%u) and sec num (%u) \n",
+                       le32_to_cpu(raw_super->segment_count),
+                       le32_to_cpu(raw_super->section_count));
+               return 1;
+       }
+
        /* Currently, support 512/1024/2048/4096 bytes sector size */
        if (le32_to_cpu(raw_super->log_sectorsize) >
                                F2FS_MAX_LOG_SECTOR_SIZE ||
-- 
1.9.1


------------------------------------------------------------------------------
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to