fsck.f2fs: check nat_bits separately from bug_on
It checks nat_bits separately, and enable it seamlessly.
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
diff --git a/fsck/fsck.c b/fsck/fsck.c
index 3ad05fb..97eea21 100644
--- a/fsck/fsck.c
+++ b/fsck/fsck.c
@@ -2676,7 +2676,7 @@
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);
diff --git a/fsck/mount.c b/fsck/mount.c
index d853fcf..3966525 100644
--- a/fsck/mount.c
+++ b/fsck/mount.c
@@ -1242,7 +1242,7 @@
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;
diff --git a/include/f2fs_fs.h b/include/f2fs_fs.h
index 6eebb3a..a730688 100644
--- a/include/f2fs_fs.h
+++ b/include/f2fs_fs.h
@@ -372,6 +372,7 @@
int force;
int defset;
int bug_on;
+ int bug_nat_bits;
int alloc_failed;
int auto_fix;
int quota_fix;