SCCS-vsn: sbin/fsck/main.c 5.32
#endif /* not lint */
#ifndef lint
#endif /* not lint */
#ifndef lint
-static char sccsid[] = "@(#)main.c 5.31 (Berkeley) %G%";
+static char sccsid[] = "@(#)main.c 5.32 (Berkeley) %G%";
#endif /* not lint */
#include <sys/param.h>
#endif /* not lint */
#include <sys/param.h>
extern int optind;
sync();
extern int optind;
sync();
- while ((ch = getopt(argc, argv, "cdpnNyYb:l:m:")) != EOF) {
+ while ((ch = getopt(argc, argv, "dpnNyYb:c:l:m:")) != EOF) {
switch (ch) {
case 'p':
preen++;
switch (ch) {
case 'p':
preen++;
+ cvtlevel = argtoi('c', "conversion level", optarg, 10);
case 'd':
debug++;
break;
case 'd':
debug++;
break;
daddr_t n_ffree, n_bfree;
struct dups *dp;
struct zlncnt *zlnp;
daddr_t n_ffree, n_bfree;
struct dups *dp;
struct zlncnt *zlnp;
if (preen && child)
(void)signal(SIGQUIT, voidquit);
if (preen && child)
(void)signal(SIGQUIT, voidquit);
(void)time(&sblock.fs_time);
sbdirty();
}
(void)time(&sblock.fs_time);
sbdirty();
}
+ if (cvtlevel && sblk.b_dirty) {
+ /*
+ * Write out the duplicate super blocks
+ */
+ for (cylno = 0; cylno < sblock.fs_ncg; cylno++)
+ bwrite(fswritefd, (char *)&sblock,
+ fsbtodb(&sblock, cgsblock(&sblock, cylno)), SBSIZE);
+ }
ckfini();
free(blockmap);
free(statemap);
ckfini();
free(blockmap);
free(statemap);