Skip to content

Commit

Permalink
Add -C back.
Browse files Browse the repository at this point in the history
Approved by:	re (kensmith)
  • Loading branch information
delphij committed Apr 27, 2009
1 parent 256728d commit b4b39eb
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 11 deletions.
1 change: 1 addition & 0 deletions sbin/fsck_ffs/fsck.h
Expand Up @@ -271,6 +271,7 @@ int bkgrdflag; /* use a snapshot to run on an active system */
int bflag; /* location of alternate super block */
int debug; /* output debugging info */
char damagedflag; /* run in damaged mode */
char ckclean; /* only do work if not cleanly unmounted */
int cvtlevel; /* convert to newer file system format */
int bkgrdcheck; /* determine if background check is possible */
int bkgrdsumadj; /* whether the kernel have ability to adjust superblock summary */
Expand Down
16 changes: 12 additions & 4 deletions sbin/fsck_ffs/fsck_ffs.8
Expand Up @@ -29,7 +29,7 @@
.\" @(#)fsck.8 8.4 (Berkeley) 5/9/95
.\" $FreeBSD$
.\"
.Dd January 20, 2009
.Dd January 25, 2009
.Dt FSCK_FFS 8
.Os
.Sh NAME
Expand All @@ -46,9 +46,9 @@
.Ar ...
.Sh DESCRIPTION
The specified disk partitions and/or file systems are checked.
In "preen" mode the clean flag of each file system's superblock is examined
and only those file systems that
are not marked clean are checked.
In "preen" or "check clean" mode the clean flag of each file system's
superblock is examined and only those file systems that are not marked clean
are checked.
File systems are marked clean when they are unmounted,
when they have been mounted read-only, or when
.Nm
Expand Down Expand Up @@ -175,6 +175,14 @@ Use the block specified immediately after the flag as
the super block for the file system.
An alternate super block is usually located at block 32 for UFS1,
and block 160 for UFS2.
.It Fl C
Check if file system was dismouted cleanly.
If so, skip file system checks (like "preen").
However, if the file system was not cleanly dismounted, do full checks,
is if
.Nm
was invoked without
.Fl C .
.It Fl c
Convert the file system to the specified level.
Note that the level of a file system can only be raised.
Expand Down
14 changes: 9 additions & 5 deletions sbin/fsck_ffs/main.c
Expand Up @@ -82,7 +82,7 @@ main(int argc, char *argv[])
sync();
skipclean = 1;
damagedflag = 0;
while ((ch = getopt(argc, argv, "b:Bc:dDfFm:npy")) != -1) {
while ((ch = getopt(argc, argv, "b:Bc:CdDfFm:npy")) != -1) {
switch (ch) {
case 'b':
skipclean = 0;
Expand Down Expand Up @@ -132,6 +132,10 @@ main(int argc, char *argv[])

case 'p':
preen++;
/*FALLTHROUGH*/

case 'C':
ckclean++;
break;

case 'y':
Expand All @@ -151,7 +155,7 @@ main(int argc, char *argv[])

if (signal(SIGINT, SIG_IGN) != SIG_IGN)
(void)signal(SIGINT, catch);
if (preen)
if (ckclean)
(void)signal(SIGQUIT, catchquit);
signal(SIGINFO, infohandler);
if (bkgrdflag) {
Expand Down Expand Up @@ -216,7 +220,7 @@ checkfilesys(char *filesys)
errmsg[0] = '\0';

cdevname = filesys;
if (debug && preen)
if (debug && ckclean)
pwarn("starting\n");
/*
* Make best effort to get the disk name. Check first to see
Expand Down Expand Up @@ -251,7 +255,7 @@ checkfilesys(char *filesys)
exit(7); /* Filesystem clean, report it now */
exit(0);
}
if (preen && skipclean) {
if (ckclean && skipclean) {
/*
* If file system is gjournaled, check it here.
*/
Expand Down Expand Up @@ -302,7 +306,7 @@ checkfilesys(char *filesys)
"CANNOT RUN IN BACKGROUND\n");
}
if ((sblock.fs_flags & FS_UNCLEAN) == 0 &&
skipclean && preen) {
skipclean && ckclean) {
/*
* file system is clean;
* skip snapshot and report it clean
Expand Down
4 changes: 2 additions & 2 deletions sbin/fsck_ffs/setup.c
Expand Up @@ -65,7 +65,7 @@ static struct disklabel *getdisklabel(char *s, int fd);
/*
* Read in a superblock finding an alternate if necessary.
* Return 1 if successful, 0 if unsuccessful, -1 if file system
* is already clean (preen mode only).
* is already clean (ckclean and preen mode only).
*/
int
setup(char *dev)
Expand Down Expand Up @@ -201,7 +201,7 @@ setup(char *dev)
pwarn("USING ALTERNATE SUPERBLOCK AT %d\n", bflag);
bflag = 0;
}
if (skipclean && preen && sblock.fs_clean) {
if (skipclean && ckclean && sblock.fs_clean) {
pwarn("FILE SYSTEM CLEAN; SKIPPING CHECKS\n");
return (-1);
}
Expand Down

0 comments on commit b4b39eb

Please sign in to comment.