filesize now set by ckinode(); pass1() uses id_entryno to calc block count
authorKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Sat, 16 Feb 1985 04:07:07 +0000 (20:07 -0800)
committerKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Sat, 16 Feb 1985 04:07:07 +0000 (20:07 -0800)
SCCS-vsn: sbin/fsck/dir.c 3.8
SCCS-vsn: sbin/fsck/inode.c 3.7
SCCS-vsn: sbin/fsck/pass1.c 3.5
SCCS-vsn: sbin/fsck/pass3.c 3.4

usr/src/sbin/fsck/dir.c
usr/src/sbin/fsck/inode.c
usr/src/sbin/fsck/pass1.c
usr/src/sbin/fsck/pass3.c

index 8739297..999dff2 100644 (file)
@@ -1,5 +1,5 @@
 #ifndef lint
 #ifndef lint
-static char version[] = "@(#)dir.c     3.7 (Berkeley) %G%";
+static char version[] = "@(#)dir.c     3.8 (Berkeley) %G%";
 #endif
 
 #include <sys/param.h>
 #endif
 
 #include <sys/param.h>
@@ -47,7 +47,6 @@ descend(parentino, inumber)
        curino.id_func = parentino->id_func;
        curino.id_parent = parentino->id_number;
        curino.id_number = inumber;
        curino.id_func = parentino->id_func;
        curino.id_parent = parentino->id_number;
        curino.id_number = inumber;
-       curino.id_filesize = dp->di_size;
        (void)ckinode(dp, &curino);
 }
 
        (void)ckinode(dp, &curino);
 }
 
@@ -286,7 +285,6 @@ linkup(orphan, pdir)
                idesc.id_type = DATA;
                idesc.id_func = findino;
                idesc.id_number = ROOTINO;
                idesc.id_type = DATA;
                idesc.id_func = findino;
                idesc.id_number = ROOTINO;
-               idesc.id_filesize = dp->di_size;
                (void)ckinode(dp, &idesc);
                if (idesc.id_parent >= ROOTINO && idesc.id_parent < imax) {
                        lfdir = idesc.id_parent;
                (void)ckinode(dp, &idesc);
                if (idesc.id_parent >= ROOTINO && idesc.id_parent < imax) {
                        lfdir = idesc.id_parent;
@@ -295,7 +293,6 @@ linkup(orphan, pdir)
                        if (preen || reply("CREATE")) {
                                idesc.id_func = mkentry;
                                idesc.id_parent = allocdir(ROOTINO, 0);
                        if (preen || reply("CREATE")) {
                                idesc.id_func = mkentry;
                                idesc.id_parent = allocdir(ROOTINO, 0);
-                               idesc.id_filesize = dp->di_size;
                                if (idesc.id_parent != 0) {
                                        if (makeentry(dp, &idesc) != 0) {
                                                lfdir = idesc.id_parent;
                                if (idesc.id_parent != 0) {
                                        if (makeentry(dp, &idesc) != 0) {
                                                lfdir = idesc.id_parent;
@@ -356,7 +353,6 @@ linkup(orphan, pdir)
        idesc.id_type = DATA;
        idesc.id_func = mkentry;
        idesc.id_number = lfdir;
        idesc.id_type = DATA;
        idesc.id_func = mkentry;
        idesc.id_number = lfdir;
-       idesc.id_filesize = dp->di_size;
        idesc.id_parent = orphan;       /* this is the inode to enter */
        idesc.id_fix = DONTKNOW;
        idesc.id_name = tempname;
        idesc.id_parent = orphan;       /* this is the inode to enter */
        idesc.id_fix = DONTKNOW;
        idesc.id_name = tempname;
@@ -375,7 +371,6 @@ linkup(orphan, pdir)
                idesc.id_type = DATA;
                idesc.id_func = chgino;
                idesc.id_number = orphan;
                idesc.id_type = DATA;
                idesc.id_func = chgino;
                idesc.id_number = orphan;
-               idesc.id_filesize = dp->di_size;
                idesc.id_fix = DONTKNOW;
                idesc.id_name = "..";
                idesc.id_parent = lfdir;        /* new value for ".." */
                idesc.id_fix = DONTKNOW;
                idesc.id_name = "..";
                idesc.id_parent = lfdir;        /* new value for ".." */
@@ -404,7 +399,6 @@ makeentry(dp, idesc)
                return (1);
        if (expanddir(dp) == 0)
                return (0);
                return (1);
        if (expanddir(dp) == 0)
                return (0);
-       idesc->id_filesize = dp->di_size;
        return (ckinode(dp, idesc) & ALTERED);
 }
 
        return (ckinode(dp, idesc) & ALTERED);
 }
 
index 74a8bec..7f490f9 100644 (file)
@@ -1,5 +1,5 @@
 #ifndef lint
 #ifndef lint
-static char version[] = "@(#)inode.c   3.6 (Berkeley) %G%";
+static char version[] = "@(#)inode.c   3.7 (Berkeley) %G%";
 #endif
 
 #include <sys/param.h>
 #endif
 
 #include <sys/param.h>
@@ -21,6 +21,7 @@ ckinode(dp, idesc)
        dino = *dp;
        idesc->id_fix = DONTKNOW;
        idesc->id_entryno = 0;
        dino = *dp;
        idesc->id_fix = DONTKNOW;
        idesc->id_entryno = 0;
+       idesc->id_filesize = dp->di_size;
        ndb = howmany(dino.di_size, sblock.fs_bsize);
        for (ap = &dino.di_db[0]; ap < &dino.di_db[NDADDR]; ap++) {
                if (--ndb == 0 && (offset = blkoff(&sblock, dino.di_size)) != 0)
        ndb = howmany(dino.di_size, sblock.fs_bsize);
        for (ap = &dino.di_db[0]; ap < &dino.di_db[NDADDR]; ap++) {
                if (--ndb == 0 && (offset = blkoff(&sblock, dino.di_size)) != 0)
index b34763f..2a68b1e 100644 (file)
@@ -1,5 +1,5 @@
 #ifndef lint
 #ifndef lint
-static char version[] = "@(#)pass1.c   3.4 (Berkeley) %G%";
+static char version[] = "@(#)pass1.c   3.5 (Berkeley) %G%";
 #endif
 
 #include <sys/param.h>
 #endif
 
 #include <sys/param.h>
@@ -107,17 +107,16 @@ pass1()
                        statemap[inumber] = DIRCT(dp) ? DSTATE : FSTATE;
                        badblk = dupblk = 0; maxblk = 0;
                        idesc.id_number = inumber;
                        statemap[inumber] = DIRCT(dp) ? DSTATE : FSTATE;
                        badblk = dupblk = 0; maxblk = 0;
                        idesc.id_number = inumber;
-                       idesc.id_filesize = 0;
                        (void)ckinode(dp, &idesc);
                        (void)ckinode(dp, &idesc);
-                       idesc.id_filesize *= btodb(sblock.fs_fsize);
-                       if (dp->di_blocks != idesc.id_filesize) {
+                       idesc.id_entryno *= btodb(sblock.fs_fsize);
+                       if (dp->di_blocks != idesc.id_entryno) {
                                pwarn("INCORRECT BLOCK COUNT I=%u (%ld should be %ld)",
                                pwarn("INCORRECT BLOCK COUNT I=%u (%ld should be %ld)",
-                                   inumber, dp->di_blocks, idesc.id_filesize);
+                                   inumber, dp->di_blocks, idesc.id_entryno);
                                if (preen)
                                        printf(" (CORRECTED)\n");
                                else if (reply("CORRECT") == 0)
                                        continue;
                                if (preen)
                                        printf(" (CORRECTED)\n");
                                else if (reply("CORRECT") == 0)
                                        continue;
-                               dp->di_blocks = idesc.id_filesize;
+                               dp->di_blocks = idesc.id_entryno;
                                inodirty();
                        }
                        continue;
                                inodirty();
                        }
                        continue;
@@ -184,7 +183,10 @@ pass1check(idesc)
                                *muldup++ = blkno;
                        }
                }
                                *muldup++ = blkno;
                        }
                }
-               idesc->id_filesize++;
+               /*
+                * count the number of blocks found in id_entryno
+                */
+               idesc->id_entryno++;
        }
        return (res);
 }
        }
        return (res);
 }
index 2e61fd7..a68ab71 100644 (file)
@@ -1,5 +1,5 @@
 #ifndef lint
 #ifndef lint
-static char version[] = "@(#)pass3.c   3.3 (Berkeley) %G%";
+static char version[] = "@(#)pass3.c   3.4 (Berkeley) %G%";
 #endif
 
 #include <sys/param.h>
 #endif
 
 #include <sys/param.h>
@@ -33,7 +33,6 @@ pass3()
                                        break;
                                dp = ginode(orphan);
                                idesc.id_parent = 0;
                                        break;
                                dp = ginode(orphan);
                                idesc.id_parent = 0;
-                               idesc.id_filesize = dp->di_size;
                                idesc.id_number = orphan;
                                (void)ckinode(dp, &idesc);
                                if (idesc.id_parent == 0)
                                idesc.id_number = orphan;
                                (void)ckinode(dp, &idesc);
                                if (idesc.id_parent == 0)