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
This commit is contained in:
parent
f5ff282bc0
commit
689724cb23
@ -948,6 +948,7 @@ check_cgmagic(int cg, struct bufarea *cgbp, int request_rebuild)
|
|||||||
{
|
{
|
||||||
struct cg *cgp = cgbp->b_un.b_cg;
|
struct cg *cgp = cgbp->b_un.b_cg;
|
||||||
uint32_t cghash, calchash;
|
uint32_t cghash, calchash;
|
||||||
|
static int prevfailcg = -1;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Extended cylinder group checks.
|
* Extended cylinder group checks.
|
||||||
@ -973,9 +974,14 @@ check_cgmagic(int cg, struct bufarea *cgbp, int request_rebuild)
|
|||||||
cgp->cg_initediblk <= sblock.fs_ipg))) {
|
cgp->cg_initediblk <= sblock.fs_ipg))) {
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
pfatal("CYLINDER GROUP %d: INTEGRITY CHECK FAILED", cg);
|
if (prevfailcg == cg)
|
||||||
if (!request_rebuild)
|
|
||||||
return (0);
|
return (0);
|
||||||
|
prevfailcg = cg;
|
||||||
|
pfatal("CYLINDER GROUP %d: INTEGRITY CHECK FAILED", cg);
|
||||||
|
if (!request_rebuild) {
|
||||||
|
printf("\n");
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
if (!reply("REBUILD CYLINDER GROUP")) {
|
if (!reply("REBUILD CYLINDER GROUP")) {
|
||||||
printf("YOU WILL NEED TO RERUN FSCK.\n");
|
printf("YOU WILL NEED TO RERUN FSCK.\n");
|
||||||
rerun = 1;
|
rerun = 1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user