git: 0c5a59252c8e - main - fsck_ffs: fix background fsck in preen mode

Robert Wing rew at FreeBSD.org
Sun Jul 11 20:58:15 UTC 2021


The branch main has been updated by rew:

URL: https://cgit.FreeBSD.org/src/commit/?id=0c5a59252c8e7b80b98521ebc23a415a05ff9594

commit 0c5a59252c8e7b80b98521ebc23a415a05ff9594
Author:     Robert Wing <rew at FreeBSD.org>
AuthorDate: 2021-07-11 20:47:27 +0000
Commit:     Robert Wing <rew at FreeBSD.org>
CommitDate: 2021-07-11 20:47:27 +0000

    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
---
 sbin/fsck_ffs/main.c | 9 ++++-----
 1 file 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:


More information about the dev-commits-src-main mailing list