skip over inode 1 when checking
authorKirk McKusick <mckusic@ucbvax.Berkeley.EDU>
Thu, 7 Jan 1982 13:12:32 +0000 (05:12 -0800)
committerKirk McKusick <mckusic@ucbvax.Berkeley.EDU>
Thu, 7 Jan 1982 13:12:32 +0000 (05:12 -0800)
SCCS-vsn: sbin/fsck/main.c 1.15
SCCS-vsn: sbin/icheck/icheck.c 1.11

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

index 5c3abda..a2b893c 100644 (file)
@@ -1,4 +1,4 @@
-static char *sccsid = "@(#)main.c      1.14 (Berkeley) %G%";
+static char *sccsid = "@(#)main.c      1.15 (Berkeley) %G%";
 
 #include <stdio.h>
 #include <ctype.h>
 
 #include <stdio.h>
 #include <ctype.h>
@@ -554,7 +554,7 @@ out1b:
                        break;
                }
        }
                        break;
                }
        }
-       if (imax - n_files != sblock.fs_cstotal.cs_nifree) {
+       if (imax - ROOTINO - n_files != sblock.fs_cstotal.cs_nifree) {
                pwarn("FREE INODE COUNT WRONG IN SUPERBLK");
                if (preen)
                        printf(" (FIXED)\n");
                pwarn("FREE INODE COUNT WRONG IN SUPERBLK");
                if (preen)
                        printf(" (FIXED)\n");
@@ -1229,7 +1229,8 @@ setup(dev)
                { badsb("BLKNO CORRUPTED"); return (0); }
        if (sblock.fs_spc != sblock.fs_nsect * sblock.fs_ntrak)
                { badsb("SPC DOES NOT JIVE w/NTRAK*NSECT"); return (0); }
                { badsb("BLKNO CORRUPTED"); return (0); }
        if (sblock.fs_spc != sblock.fs_nsect * sblock.fs_ntrak)
                { badsb("SPC DOES NOT JIVE w/NTRAK*NSECT"); return (0); }
-       if (sblock.fs_cgsize != cgsize(&sblock))
+       if (sblock.fs_cgsize !=
+           sizeof(struct cg) + howmany(sblock.fs_fpg, NBBY))
                { badsb("CGSIZE INCORRECT"); return (0); }
        if (sblock.fs_cssize != sblock.fs_ncg * sizeof(struct csum))
                { badsb("CSSIZE INCORRECT"); return (0); }
                { badsb("CGSIZE INCORRECT"); return (0); }
        if (sblock.fs_cssize != sblock.fs_ncg * sizeof(struct csum))
                { badsb("CSSIZE INCORRECT"); return (0); }
@@ -1266,7 +1267,7 @@ ginode()
 {
        daddr_t iblk;
 
 {
        daddr_t iblk;
 
-       if (inum > imax)
+       if (inum < ROOTINO || inum > imax)
                return (NULL);
        if (inum < startinum || inum >= startinum + INOPB(&sblock)) {
                iblk = itod(inum, &sblock);
                return (NULL);
        if (inum < startinum || inum >= startinum + INOPB(&sblock)) {
                iblk = itod(inum, &sblock);
index 86a16d2..cef78cd 100644 (file)
@@ -1,4 +1,4 @@
-static char *sccsid = "@(#)icheck.c    1.10 (Berkeley) %G%";
+static char *sccsid = "@(#)icheck.c    1.11 (Berkeley) %G%";
 
 /*
  * icheck
 
 /*
  * icheck
@@ -460,6 +460,11 @@ makecg()
                        clrbit(cgrp.cg_iused, i);
                        i++;
                }
                        clrbit(cgrp.cg_iused, i);
                        i++;
                }
+               if (c == 0)
+                       for (i = 0; i < ROOTINO; i++) {
+                               setbit(cgrp.cg_iused, i);
+                               cgrp.cg_cs.cs_nifree--;
+                       }
                for (s = 0; s < MAXCPG; s++)
                        for (i = 0; i < NRPOS; i++)
                                cgrp.cg_b[s][i] = 0;
                for (s = 0; s < MAXCPG; s++)
                        for (i = 0; i < NRPOS; i++)
                                cgrp.cg_b[s][i] = 0;