From 85171386d8fd62db23adb9abf59da50de6da54da Mon Sep 17 00:00:00 2001 From: dg Date: Sun, 21 Aug 1994 08:47:10 +0000 Subject: Better support for clean bit: prompt the user to fix it if it's wrong when not preening, and indicate if it was fixed when preening. --- sbin/fsck_ifs/main.c | 3 +-- sbin/fsck_ifs/pass5.c | 9 +++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'sbin/fsck_ifs') diff --git a/sbin/fsck_ifs/main.c b/sbin/fsck_ifs/main.c index f2dba1c..5ff6918 100644 --- a/sbin/fsck_ifs/main.c +++ b/sbin/fsck_ifs/main.c @@ -285,8 +285,7 @@ checkfilesys(filesys, mntpt, auxdata, child) duplist = (struct dups *)0; muldup = (struct dups *)0; inocleanup(); - if (fsmodified || (!sblock.fs_clean && preen && !nflag && !hotroot)) { - sblock.fs_clean = 1; + if (fsmodified) { (void)time(&sblock.fs_time); sbdirty(); } diff --git a/sbin/fsck_ifs/pass5.c b/sbin/fsck_ifs/pass5.c index 2e98f96..84e4ba7 100644 --- a/sbin/fsck_ifs/pass5.c +++ b/sbin/fsck_ifs/pass5.c @@ -316,4 +316,13 @@ pass5() fs->fs_fmod = 0; sbdirty(); } + if (fs->fs_clean == 0) { + pwarn("CLEAN FLAG IS WRONG IN SUPERBLOCK"); + if (preen) + printf(" (FIXED)\n"); + if (preen || reply("FIX") == 1) { + fs->fs_clean = 1; + sbdirty(); + } + } } -- cgit v1.1