diff options
Diffstat (limited to 'sbin/fsck_ifs')
-rw-r--r-- | sbin/fsck_ifs/main.c | 3 | ||||
-rw-r--r-- | sbin/fsck_ifs/pass5.c | 9 |
2 files changed, 10 insertions, 2 deletions
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(); + } + } } |