aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKirk McKusick <mckusick@FreeBSD.org>2021-04-27 01:42:48 +0000
committerKirk McKusick <mckusick@FreeBSD.org>2021-04-27 01:43:51 +0000
commit689724cb23c2acf58091c80f27de4823d7cd87ca (patch)
tree1fe6d25c74def2668d27cdd40876a1b108b81c64
parentf5ff282bc025f0395afcef40f5b6e778202c4181 (diff)
downloadsrc-689724cb23c2acf58091c80f27de4823d7cd87ca.tar.gz
src-689724cb23c2acf58091c80f27de4823d7cd87ca.zip
Clean up fsck_ffs error message output.
When fsck_ffs is creating a lost+found directory it must allocate an inode and a filesystem block. If it encounters a cylinder group with a bad check hash, it complains twice: once for the inode and again for the filesystem block. This change suppresses the second complaint. Reported by: Chuck Silvers Tested by: Chuck Silvers MFC after: 1 week Sponsored by: Netflix
-rw-r--r--sbin/fsck_ffs/fsutil.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sbin/fsck_ffs/fsutil.c b/sbin/fsck_ffs/fsutil.c
index 276d543dedc6..b13ba4c54bde 100644
--- a/sbin/fsck_ffs/fsutil.c
+++ b/sbin/fsck_ffs/fsutil.c
@@ -948,6 +948,7 @@ check_cgmagic(int cg, struct bufarea *cgbp, int request_rebuild)
{
struct cg *cgp = cgbp->b_un.b_cg;
uint32_t cghash, calchash;
+ static int prevfailcg = -1;
/*
* Extended cylinder group checks.
@@ -973,9 +974,14 @@ check_cgmagic(int cg, struct bufarea *cgbp, int request_rebuild)
cgp->cg_initediblk <= sblock.fs_ipg))) {
return (1);
}
+ if (prevfailcg == cg)
+ return (0);
+ prevfailcg = cg;
pfatal("CYLINDER GROUP %d: INTEGRITY CHECK FAILED", cg);
- if (!request_rebuild)
+ if (!request_rebuild) {
+ printf("\n");
return (0);
+ }
if (!reply("REBUILD CYLINDER GROUP")) {
printf("YOU WILL NEED TO RERUN FSCK.\n");
rerun = 1;