fsck.f2fs: check nat_bits separately from bug_on
authorJaegeuk Kim <jaegeuk@kernel.org>
Wed, 28 Nov 2018 23:11:28 +0000 (15:11 -0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Wed, 9 Jan 2019 04:21:32 +0000 (20:21 -0800)
It checks nat_bits separately, and enable it seamlessly.

Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fsck/fsck.c
fsck/mount.c
include/f2fs_fs.h

index 3ad05fb..97eea21 100644 (file)
@@ -2676,7 +2676,7 @@ int fsck_verify(struct f2fs_sb_info *sbi)
        if (force || (c.fix_on && !c.ro)) {
                struct f2fs_checkpoint *cp = F2FS_CKPT(sbi);
 
-               if (force || c.bug_on) {
+               if (force || c.bug_on || c.bug_nat_bits) {
                        /* flush nats to write_nit_bits below */
                        flush_journal_entries(sbi);
                        fix_hard_links(sbi);
index d853fcf..3966525 100644 (file)
@@ -1242,7 +1242,7 @@ out:
        if (!err) {
                MSG(0, "Info: Checked valid nat_bits in checkpoint\n");
        } else {
-               c.bug_on = 1;
+               c.bug_nat_bits = 1;
                MSG(0, "Info: Corrupted valid nat_bits in checkpoint\n");
        }
        return err;
index 6eebb3a..a730688 100644 (file)
@@ -372,6 +372,7 @@ struct f2fs_configuration {
        int force;
        int defset;
        int bug_on;
+       int bug_nat_bits;
        int alloc_failed;
        int auto_fix;
        int quota_fix;