aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Wing <rew@FreeBSD.org>2021-07-11 20:47:27 +0000
committerRobert Wing <rew@FreeBSD.org>2021-07-11 20:47:27 +0000
commit0c5a59252c8e7b80b98521ebc23a415a05ff9594 (patch)
treed19f03c5295c52e81d1f2d757252211c508c5f7d
parent4488c8c34ba38146aab52fd60211bb32cdc87267 (diff)
downloadsrc-0c5a59252c8e7b80b98521ebc23a415a05ff9594.tar.gz
src-0c5a59252c8e7b80b98521ebc23a415a05ff9594.zip
fsck_ffs: fix background fsck in preen mode
Background checks are only allowed for mounted filesystems - don't try to open the device for writing when performing a background check. While here, remove a debugging printf that's commented out. PR: 256746 Fixes: 5cc52631b3b88dfc36d8049dc8bece8573c5f9af Reviewed by: mckusick MFC After: 1 week Differential Revision: https://reviews.freebsd.org/D30880
-rw-r--r--sbin/fsck_ffs/main.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/sbin/fsck_ffs/main.c b/sbin/fsck_ffs/main.c
index edda3d785f09..90eb745ddabc 100644
--- a/sbin/fsck_ffs/main.c
+++ b/sbin/fsck_ffs/main.c
@@ -295,15 +295,14 @@ checkfilesys(char *filesys)
*/
if ((fsreadfd = open(filesys, O_RDONLY)) < 0 || readsb(0) == 0)
exit(3); /* Cannot read superblock */
- if (nflag || (fswritefd = open(filesys, O_WRONLY)) < 0) {
+ if (bkgrdflag == 0 &&
+ (nflag || (fswritefd = open(filesys, O_WRONLY)) < 0)) {
fswritefd = -1;
if (preen)
pfatal("NO WRITE ACCESS");
printf(" (NO WRITE)");
}
if ((sblock.fs_flags & FS_GJOURNAL) != 0) {
- //printf("GJournaled file system detected on %s.\n",
- // filesys);
if (sblock.fs_clean == 1) {
pwarn("FILE SYSTEM CLEAN; SKIPPING CHECKS\n");
exit(0);
@@ -317,10 +316,10 @@ checkfilesys(char *filesys)
} else {
pfatal(
"UNEXPECTED INCONSISTENCY, CANNOT RUN FAST FSCK\n");
- close(fsreadfd);
- close(fswritefd);
}
}
+ close(fsreadfd);
+ close(fswritefd);
}
/*
* If we are to do a background check: