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-19 18:06:53 +0000
commitfb2feceac34cc9c3fb47ba4a7b0ca31637f8fdf0 (patch)
treeaf105d7c0aaaf1f6a43d7dea4474913136a8ac8f
parenta54e547950f7fd146fefa166aea9bbbbe2c01e7c (diff)
downloadsrc-fb2feceac34c.tar.gz
src-fb2feceac34c.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 Differential Revision: https://reviews.freebsd.org/D30880 (cherry picked from commit 0c5a59252c8e7b80b98521ebc23a415a05ff9594)
-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 67aff2dde73c..2c6c93dce5dc 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: