fix bug in initializing cg_free in makecg()
authorKirk McKusick <mckusic@ucbvax.Berkeley.EDU>
Sat, 16 Jan 1982 05:47:40 +0000 (21:47 -0800)
committerKirk McKusick <mckusic@ucbvax.Berkeley.EDU>
Sat, 16 Jan 1982 05:47:40 +0000 (21:47 -0800)
SCCS-vsn: sbin/fsck/main.c 1.21
SCCS-vsn: sbin/icheck/icheck.c 1.17

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

index 72a9b62..6d241ba 100644 (file)
@@ -1,4 +1,4 @@
-static char *sccsid = "@(#)main.c      1.20 (Berkeley) %G%";
+static char *sccsid = "@(#)main.c      1.21 (Berkeley) %G%";
 
 #include <stdio.h>
 #include <ctype.h>
 
 #include <stdio.h>
 #include <ctype.h>
@@ -1489,9 +1489,11 @@ makecg()
        for (c = 0; c < sblock.fs_ncg; c++) {
                dbase = cgbase(&sblock, c);
                dmax = dbase + sblock.fs_fpg;
        for (c = 0; c < sblock.fs_ncg; c++) {
                dbase = cgbase(&sblock, c);
                dmax = dbase + sblock.fs_fpg;
-               if (dmax > sblock.fs_size)
-                       for ( ; dmax > sblock.fs_size ; dmax--)
+               if (dmax > sblock.fs_size) {
+                       for ( ; dmax >= sblock.fs_size ; dmax--)
                                clrbit(cgrp.cg_free, dmax - dbase);
                                clrbit(cgrp.cg_free, dmax - dbase);
+                       dmax++;
+               }
                dmin = sblock.fs_dblkno;
                cs = &sblock.fs_cs(&sblock, c);
                cgrp.cg_time = time(0);
                dmin = sblock.fs_dblkno;
                cs = &sblock.fs_cs(&sblock, c);
                cgrp.cg_time = time(0);
index 878a47d..8a8e32d 100644 (file)
@@ -1,4 +1,4 @@
-static char *sccsid = "@(#)icheck.c    1.16 (Berkeley) %G%";
+static char *sccsid = "@(#)icheck.c    1.17 (Berkeley) %G%";
 
 /*
  * icheck
 
 /*
  * icheck
@@ -422,9 +422,11 @@ makecg()
        for (c = 0; c < sblock.fs_ncg; c++) {
                dbase = cgbase(&sblock, c);
                dmax = dbase + sblock.fs_fpg;
        for (c = 0; c < sblock.fs_ncg; c++) {
                dbase = cgbase(&sblock, c);
                dmax = dbase + sblock.fs_fpg;
-               if (dmax > sblock.fs_size)
-                       for ( ; dmax > sblock.fs_size; dmax--)
+               if (dmax > sblock.fs_size) {
+                       for ( ; dmax >= sblock.fs_size; dmax--)
                                clrbit(cgrp.cg_free, dmax - dbase);
                                clrbit(cgrp.cg_free, dmax - dbase);
+                       dmax++;
+               }
                dmin = sblock.fs_dblkno;
                cs = &sblock.fs_cs(&sblock, c);
                cgrp.cg_time = time(0);
                dmin = sblock.fs_dblkno;
                cs = &sblock.fs_cs(&sblock, c);
                cgrp.cg_time = time(0);