Date: Fri, 4 Dec 1998 23:13:22 +1100 From: Bruce Evans <bde@zeta.org.au> To: current@FreeBSD.ORG, julian@whistle.com Cc: Don.Lewis@tsc.tdk.com, mckusick@McKusick.COM Subject: Re: FreeBSD fsck updated Message-ID: <199812041213.XAA26965@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>Is this the verboseness you were complaining about? > > >diff -cr fsck/pass5.c fsck.julian/pass5.c >*** fsck/pass5.c Wed Dec 2 18:41:11 1998 >--- fsck.julian/pass5.c Wed Dec 2 16:26:18 1998 >*************** >*** 355,361 **** > && dofix(&idesc[0], "FREE BLK COUNT(S) WRONG IN SUPERBLK")) { > memmove(&fs->fs_cstotal, &cstotal, sizeof *cs); > fs->fs_ronly = 0; ^^^^^^^^^^^^^^^^^ >- fs->fs_fmod = 0; ^^^^^^^^^^^^^^^^ > sbdirty(); > } > } >--- 355,378 ---- > && dofix(&idesc[0], "FREE BLK COUNT(S) WRONG IN SUPERBLK")) { > memmove(&fs->fs_cstotal, &cstotal, sizeof *cs); > fs->fs_ronly = 0; > sbdirty(); >+ } >+ if (fs->fs_fmod != 0) { >+ pwarn("MODIFIED FLAG SET IN SUPERBLOCK"); >+ if (preen) >+ printf(" (FIXED)\n"); >+ if (preen || reply("FIX") == 1) { >+ fs->fs_fmod = 0; >+ sbdirty(); >+ } >+ } >+ if (fs->fs_clean == 0) { >+ pwarn("CLEAN FLAG NOT SET IN SUPERBLOCK"); >+ if (preen) >+ printf(" (FIXED)\n"); >+ if (preen || reply("FIX") == 1) { >+ fs->fs_clean = 1; >+ sbdirty(); >+ } > } > } I like the warning for fs_clean == 0 in the preen case. The code for setting fs_clean in the !preen case seems to have rotted - there is other code that sets the fs_clean flag and it usually sets it even if you answer 'n' here. Clearing fs_fmod here seems to be bogus. It is set (to 0 or 1) unconditionally at mount time. Similarly for fs_ronly. I don't see how it can be right to clear these flags here _only_ when a certain type of inconsistency (that has nothing to do with these flags) is fixed. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199812041213.XAA26965>