summaryrefslogtreecommitdiffstats
path: root/sbin/fsck_ffs/fsutil.c
diff options
context:
space:
mode:
authormckusick <mckusick@FreeBSD.org>2001-04-24 22:38:08 +0000
committermckusick <mckusick@FreeBSD.org>2001-04-24 22:38:08 +0000
commitecbf3eacd9a17a3a9b238e2fa65b2d33d85e8d1f (patch)
tree261472238f24e110d11cd5bf7fc8de94dc83e882 /sbin/fsck_ffs/fsutil.c
parentb92d41b0e964c6163071505bd9fdc9f02b6410fe (diff)
downloadFreeBSD-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.c20
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);
}
OpenPOWER on IntegriCloud