From 042990e0410fe3c6471eb9fcd91a863a780423d9 Mon Sep 17 00:00:00 2001 From: kib Date: Mon, 13 Oct 2008 14:01:05 +0000 Subject: Background fsck applies twice some summary totals changes. The next background fsck on the same file system might then print negative numbers for reclaimed directories/files/fragments. Address the issue in a limited degree, by using old summary data for cg when bgfsck is performed. Submitted by: tegge MFC after: 1 week --- sbin/fsck_ffs/pass5.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'sbin/fsck_ffs/pass5.c') diff --git a/sbin/fsck_ffs/pass5.c b/sbin/fsck_ffs/pass5.c index f585e92..173156e 100644 --- a/sbin/fsck_ffs/pass5.c +++ b/sbin/fsck_ffs/pass5.c @@ -291,10 +291,17 @@ pass5(void) sump[run]++; } } - cstotal.cs_nffree += newcg->cg_cs.cs_nffree; - cstotal.cs_nbfree += newcg->cg_cs.cs_nbfree; - cstotal.cs_nifree += newcg->cg_cs.cs_nifree; - cstotal.cs_ndir += newcg->cg_cs.cs_ndir; + if (bkgrdflag != 0) { + cstotal.cs_nffree += cg->cg_cs.cs_nffree; + cstotal.cs_nbfree += cg->cg_cs.cs_nbfree; + cstotal.cs_nifree += cg->cg_cs.cs_nifree; + cstotal.cs_ndir += cg->cg_cs.cs_ndir; + } else { + cstotal.cs_nffree += newcg->cg_cs.cs_nffree; + cstotal.cs_nbfree += newcg->cg_cs.cs_nbfree; + cstotal.cs_nifree += newcg->cg_cs.cs_nifree; + cstotal.cs_ndir += newcg->cg_cs.cs_ndir; + } cs = &fs->fs_cs(fs, c); if (cursnapshot == 0 && memcmp(&newcg->cg_cs, cs, sizeof *cs) != 0 && -- cgit v1.1