diff options
author | Robert Wing <rew@FreeBSD.org> | 2021-07-11 20:47:27 +0000 |
---|---|---|
committer | Robert Wing <rew@FreeBSD.org> | 2021-07-11 20:47:27 +0000 |
commit | 0c5a59252c8e7b80b98521ebc23a415a05ff9594 (patch) | |
tree | d19f03c5295c52e81d1f2d757252211c508c5f7d /sbin/fsck_ffs | |
parent | 4488c8c34ba38146aab52fd60211bb32cdc87267 (diff) | |
download | src-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
Diffstat (limited to 'sbin/fsck_ffs')
-rw-r--r-- | sbin/fsck_ffs/main.c | 9 |
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: |