Author: kib
Date: Mon Oct 13 14:01:05 2008
New Revision: 183821
URL: http://svn.freebsd.org/changeset/base/183821

Log:
  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

Modified:
  head/sbin/fsck_ffs/pass5.c

Modified: head/sbin/fsck_ffs/pass5.c
==============================================================================
--- head/sbin/fsck_ffs/pass5.c  Mon Oct 13 13:56:23 2008        (r183820)
+++ head/sbin/fsck_ffs/pass5.c  Mon Oct 13 14:01:05 2008        (r183821)
@@ -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 &&
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to