diff options
author | mckusick <mckusick@FreeBSD.org> | 2001-04-24 22:38:08 +0000 |
---|---|---|
committer | mckusick <mckusick@FreeBSD.org> | 2001-04-24 22:38:08 +0000 |
commit | ecbf3eacd9a17a3a9b238e2fa65b2d33d85e8d1f (patch) | |
tree | 261472238f24e110d11cd5bf7fc8de94dc83e882 /sbin/fsck_ffs/fsutil.c | |
parent | b92d41b0e964c6163071505bd9fdc9f02b6410fe (diff) | |
download | FreeBSD-src-ecbf3eacd9a17a3a9b238e2fa65b2d33d85e8d1f.zip FreeBSD-src-ecbf3eacd9a17a3a9b238e2fa65b2d33d85e8d1f.tar.gz |
Add support for the -F flag which determines whether a specified
filesystem needs foreground checking (usually at boot time) or
can defer to background checking (after the system is up and running).
See the manual page, fsck_ffs(8), for details on the -F and -B options.
These options are primarily intended for use by the fsck front end.
All output is directed to stdout so that the output is coherent
when redirected to a file or a pipe. Unify the code with the fsck
front end that allows either a device or a mount point to be
specified as the argument to be checked.
Diffstat (limited to 'sbin/fsck_ffs/fsutil.c')
-rw-r--r-- | sbin/fsck_ffs/fsutil.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/sbin/fsck_ffs/fsutil.c b/sbin/fsck_ffs/fsutil.c index c743aca..325fe5c 100644 --- a/sbin/fsck_ffs/fsutil.c +++ b/sbin/fsck_ffs/fsutil.c @@ -264,6 +264,8 @@ rwerror(mesg, blk) ufs_daddr_t blk; { + if (bkgrdcheck) + exit(EEXIT); if (preen == 0) printf("\n"); pfatal("CANNOT %s: %ld", mesg, blk); @@ -645,10 +647,10 @@ pfatal(fmt, va_alist) va_start(ap); #endif if (!preen) { - (void)vfprintf(stderr, fmt, ap); + (void)vfprintf(stdout, fmt, ap); va_end(ap); if (usedsoftdep) - (void)fprintf(stderr, + (void)fprintf(stdout, "\nUNEXPECTED SOFT UPDATE INCONSISTENCY\n"); /* * Force foreground fsck to clean up inconsistency. @@ -659,7 +661,7 @@ pfatal(fmt, va_alist) if (sysctlbyname("vfs.ffs.setflags", 0, 0, &cmd, sizeof cmd) == -1) pwarn("CANNOT SET FS_NEEDSFSCK FLAG\n"); - fprintf(stderr, "CANNOT RUN IN BACKGROUND\n"); + fprintf(stdout, "CANNOT RUN IN BACKGROUND\n"); ckfini(0); exit(EEXIT); } @@ -667,9 +669,9 @@ pfatal(fmt, va_alist) } if (cdevname == NULL) cdevname = "fsck"; - (void)fprintf(stderr, "%s: ", cdevname); - (void)vfprintf(stderr, fmt, ap); - (void)fprintf(stderr, + (void)fprintf(stdout, "%s: ", cdevname); + (void)vfprintf(stdout, fmt, ap); + (void)fprintf(stdout, "\n%s: UNEXPECTED%sINCONSISTENCY; RUN fsck MANUALLY.\n", cdevname, usedsoftdep ? " SOFT UPDATE " : " "); /* @@ -706,8 +708,8 @@ pwarn(fmt, va_alist) va_start(ap); #endif if (preen) - (void)fprintf(stderr, "%s: ", cdevname); - (void)vfprintf(stderr, fmt, ap); + (void)fprintf(stdout, "%s: ", cdevname); + (void)vfprintf(stdout, fmt, ap); va_end(ap); } @@ -730,7 +732,7 @@ panic(fmt, va_alist) va_start(ap); #endif pfatal("INTERNAL INCONSISTENCY:"); - (void)vfprintf(stderr, fmt, ap); + (void)vfprintf(stdout, fmt, ap); va_end(ap); exit(EEXIT); } |