diff options
author | dg <dg@FreeBSD.org> | 1994-08-21 08:47:10 +0000 |
---|---|---|
committer | dg <dg@FreeBSD.org> | 1994-08-21 08:47:10 +0000 |
commit | 85171386d8fd62db23adb9abf59da50de6da54da (patch) | |
tree | 07f485650c701e0a6ff5fbc8643da1f8a2731d68 /sbin | |
parent | d8d07f969e93bb43feefef9582472462ae939153 (diff) | |
download | FreeBSD-src-85171386d8fd62db23adb9abf59da50de6da54da.zip FreeBSD-src-85171386d8fd62db23adb9abf59da50de6da54da.tar.gz |
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.
Diffstat (limited to 'sbin')
-rw-r--r-- | sbin/fsck/main.c | 3 | ||||
-rw-r--r-- | sbin/fsck/pass5.c | 9 | ||||
-rw-r--r-- | sbin/fsck_ffs/main.c | 3 | ||||
-rw-r--r-- | sbin/fsck_ffs/pass5.c | 9 | ||||
-rw-r--r-- | sbin/fsck_ifs/main.c | 3 | ||||
-rw-r--r-- | sbin/fsck_ifs/pass5.c | 9 |
6 files changed, 30 insertions, 6 deletions
diff --git a/sbin/fsck/main.c b/sbin/fsck/main.c index f2dba1c..5ff6918 100644 --- a/sbin/fsck/main.c +++ b/sbin/fsck/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/pass5.c b/sbin/fsck/pass5.c index 2e98f96..84e4ba7 100644 --- a/sbin/fsck/pass5.c +++ b/sbin/fsck/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(); + } + } } diff --git a/sbin/fsck_ffs/main.c b/sbin/fsck_ffs/main.c index f2dba1c..5ff6918 100644 --- a/sbin/fsck_ffs/main.c +++ b/sbin/fsck_ffs/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_ffs/pass5.c b/sbin/fsck_ffs/pass5.c index 2e98f96..84e4ba7 100644 --- a/sbin/fsck_ffs/pass5.c +++ b/sbin/fsck_ffs/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(); + } + } } 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(); + } + } } |