The branch main has been updated by rew:

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

commit 0c5a59252c8e7b80b98521ebc23a415a05ff9594
Author:     Robert Wing <r...@freebsd.org>
AuthorDate: 2021-07-11 20:47:27 +0000
Commit:     Robert Wing <r...@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:
_______________________________________________
dev-commits-src-main@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/dev-commits-src-main
To unsubscribe, send any mail to "dev-commits-src-main-unsubscr...@freebsd.org"

Reply via email to