zero out cg_free for unused portion of last cylinder group
authorKirk McKusick <mckusic@ucbvax.Berkeley.EDU>
Thu, 14 Jan 1982 10:34:04 +0000 (02:34 -0800)
committerKirk McKusick <mckusic@ucbvax.Berkeley.EDU>
Thu, 14 Jan 1982 10:34:04 +0000 (02:34 -0800)
SCCS-vsn: sbin/icheck/icheck.c 1.16
SCCS-vsn: sbin/fsck/main.c 1.20

usr/src/sbin/fsck/main.c
usr/src/sbin/icheck/icheck.c

index d271d81..72a9b62 100644 (file)
@@ -1,4 +1,4 @@
-static char *sccsid = "@(#)main.c      1.19 (Berkeley) %G%";
+static char *sccsid = "@(#)main.c      1.20 (Berkeley) %G%";
 
 #include <stdio.h>
 #include <ctype.h>
 
 #include <stdio.h>
 #include <ctype.h>
@@ -1473,6 +1473,7 @@ makecg()
        int c, blk;
        daddr_t dbase, d, dmin, dmax;
        long i, j, s;
        int c, blk;
        daddr_t dbase, d, dmin, dmax;
        long i, j, s;
+       int x;
        register struct csum *cs;
        register DINODE *dp;
 
        register struct csum *cs;
        register DINODE *dp;
 
@@ -1489,8 +1490,9 @@ makecg()
                dbase = cgbase(&sblock, c);
                dmax = dbase + sblock.fs_fpg;
                if (dmax > sblock.fs_size)
                dbase = cgbase(&sblock, c);
                dmax = dbase + sblock.fs_fpg;
                if (dmax > sblock.fs_size)
-                       dmax = sblock.fs_size;
-               dmin = cgdmin(&sblock, c) - dbase;
+                       for ( ; dmax > sblock.fs_size ; dmax--)
+                               clrbit(cgrp.cg_free, dmax - dbase);
+               dmin = sblock.fs_dblkno;
                cs = &sblock.fs_cs(&sblock, c);
                cgrp.cg_time = time(0);
                cgrp.cg_magic = CG_MAGIC;
                cs = &sblock.fs_cs(&sblock, c);
                cgrp.cg_time = time(0);
                cgrp.cg_magic = CG_MAGIC;
@@ -1556,10 +1558,12 @@ makecg()
                                fragacct(&sblock, blk, cgrp.cg_frsum, 1);
                        }
                }
                                fragacct(&sblock, blk, cgrp.cg_frsum, 1);
                        }
                }
+               x = 0;
                for (j = d; d < dmax - dbase; d++) {
                        if (!getbmap(dbase+d)) {
                                setbit(cgrp.cg_free, d);
                                cgrp.cg_cs.cs_nffree++;
                for (j = d; d < dmax - dbase; d++) {
                        if (!getbmap(dbase+d)) {
                                setbit(cgrp.cg_free, d);
                                cgrp.cg_cs.cs_nffree++;
+                               x++;
                        } else
                                clrbit(cgrp.cg_free, d);
                }
                        } else
                                clrbit(cgrp.cg_free, d);
                }
index 5a64dfd..878a47d 100644 (file)
@@ -1,4 +1,4 @@
-static char *sccsid = "@(#)icheck.c    1.15 (Berkeley) %G%";
+static char *sccsid = "@(#)icheck.c    1.16 (Berkeley) %G%";
 
 /*
  * icheck
 
 /*
  * icheck
@@ -423,8 +423,9 @@ makecg()
                dbase = cgbase(&sblock, c);
                dmax = dbase + sblock.fs_fpg;
                if (dmax > sblock.fs_size)
                dbase = cgbase(&sblock, c);
                dmax = dbase + sblock.fs_fpg;
                if (dmax > sblock.fs_size)
-                       dmax = sblock.fs_size;
-               dmin = cgdmin(&sblock, c) - dbase;
+                       for ( ; dmax > sblock.fs_size; dmax--)
+                               clrbit(cgrp.cg_free, dmax - dbase);
+               dmin = sblock.fs_dblkno;
                cs = &sblock.fs_cs(&sblock, c);
                cgrp.cg_time = time(0);
                cgrp.cg_magic = CG_MAGIC;
                cs = &sblock.fs_cs(&sblock, c);
                cgrp.cg_time = time(0);
                cgrp.cg_magic = CG_MAGIC;