lint and other aesthetic cleanups
authorKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Fri, 2 Feb 1990 08:18:09 +0000 (00:18 -0800)
committerKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Fri, 2 Feb 1990 08:18:09 +0000 (00:18 -0800)
SCCS-vsn: sbin/fsck/pass4.c 5.6
SCCS-vsn: sbin/fsck/main.c 5.16
SCCS-vsn: sbin/fsck/utilities.c 5.19
SCCS-vsn: sbin/fsck/setup.c 5.24
SCCS-vsn: sbin/fsck/pass1.c 5.8
SCCS-vsn: sbin/fsck/dir.c 5.9
SCCS-vsn: sbin/fsck/inode.c 5.10
SCCS-vsn: sbin/fsck/fsck.h 5.9
SCCS-vsn: sbin/fsck/pass1b.c 5.5
SCCS-vsn: sbin/fsck/pass5.c 5.9
SCCS-vsn: sbin/fsck/pass3.c 5.5
SCCS-vsn: sbin/fsck/pass2.c 5.7

12 files changed:
usr/src/sbin/fsck/dir.c
usr/src/sbin/fsck/fsck.h
usr/src/sbin/fsck/inode.c
usr/src/sbin/fsck/main.c
usr/src/sbin/fsck/pass1.c
usr/src/sbin/fsck/pass1b.c
usr/src/sbin/fsck/pass2.c
usr/src/sbin/fsck/pass3.c
usr/src/sbin/fsck/pass4.c
usr/src/sbin/fsck/pass5.c
usr/src/sbin/fsck/setup.c
usr/src/sbin/fsck/utilities.c

index 1251a94..595c3fb 100644 (file)
@@ -5,7 +5,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)dir.c      5.8 (Berkeley) %G%";
+static char sccsid[] = "@(#)dir.c      5.9 (Berkeley) %G%";
 #endif not lint
 
 #include <sys/param.h>
 #endif not lint
 
 #include <sys/param.h>
@@ -24,14 +24,14 @@ int lfmode = 01777;
 struct dirtemplate emptydir = { 0, DIRBLKSIZ };
 struct dirtemplate dirhead = { 0, 12, 1, ".", 0, DIRBLKSIZ - 12, 2, ".." };
 
 struct dirtemplate emptydir = { 0, DIRBLKSIZ };
 struct dirtemplate dirhead = { 0, 12, 1, ".", 0, DIRBLKSIZ - 12, 2, ".." };
 
-DIRECT *fsck_readdir();
-BUFAREA        *getdirblk();
+struct direct  *fsck_readdir();
+struct bufarea *getdirblk();
 
 descend(parentino, inumber)
        struct inodesc *parentino;
        ino_t inumber;
 {
 
 descend(parentino, inumber)
        struct inodesc *parentino;
        ino_t inumber;
 {
-       register DINODE *dp;
+       register struct dinode *dp;
        struct inodesc curino;
 
        bzero((char *)&curino, sizeof(struct inodesc));
        struct inodesc curino;
 
        bzero((char *)&curino, sizeof(struct inodesc));
@@ -40,13 +40,13 @@ descend(parentino, inumber)
        statemap[inumber] = DFOUND;
        dp = ginode(inumber);
        if (dp->di_size == 0) {
        statemap[inumber] = DFOUND;
        dp = ginode(inumber);
        if (dp->di_size == 0) {
-               direrr(inumber, "ZERO LENGTH DIRECTORY");
+               direrror(inumber, "ZERO LENGTH DIRECTORY");
                if (reply("REMOVE") == 1)
                        statemap[inumber] = DCLEAR;
                return;
        }
        if (dp->di_size < MINDIRSIZE) {
                if (reply("REMOVE") == 1)
                        statemap[inumber] = DCLEAR;
                return;
        }
        if (dp->di_size < MINDIRSIZE) {
-               direrr(inumber, "DIRECTORY TOO SHORT");
+               direrror(inumber, "DIRECTORY TOO SHORT");
                dp->di_size = MINDIRSIZE;
                if (reply("FIX") == 1)
                        inodirty();
                dp->di_size = MINDIRSIZE;
                if (reply("FIX") == 1)
                        inodirty();
@@ -66,7 +66,7 @@ descend(parentino, inumber)
        curino.id_number = inumber;
        (void)ckinode(dp, &curino);
        if (curino.id_entryno < 2) {
        curino.id_number = inumber;
        (void)ckinode(dp, &curino);
        if (curino.id_entryno < 2) {
-               direrr(inumber, "NULL DIRECTORY");
+               direrror(inumber, "NULL DIRECTORY");
                if (reply("REMOVE") == 1)
                        statemap[inumber] = DCLEAR;
        }
                if (reply("REMOVE") == 1)
                        statemap[inumber] = DCLEAR;
        }
@@ -75,8 +75,8 @@ descend(parentino, inumber)
 dirscan(idesc)
        register struct inodesc *idesc;
 {
 dirscan(idesc)
        register struct inodesc *idesc;
 {
-       register DIRECT *dp;
-       register BUFAREA *bp;
+       register struct direct *dp;
+       register struct bufarea *bp;
        int dsize, n;
        long blksiz;
        char dbuf[DIRBLKSIZ];
        int dsize, n;
        long blksiz;
        char dbuf[DIRBLKSIZ];
@@ -87,7 +87,7 @@ dirscan(idesc)
            (idesc->id_filesize & (DIRBLKSIZ - 1)) != 0)
                idesc->id_filesize = roundup(idesc->id_filesize, DIRBLKSIZ);
        blksiz = idesc->id_numfrags * sblock.fs_fsize;
            (idesc->id_filesize & (DIRBLKSIZ - 1)) != 0)
                idesc->id_filesize = roundup(idesc->id_filesize, DIRBLKSIZ);
        blksiz = idesc->id_numfrags * sblock.fs_fsize;
-       if (outrange(idesc->id_blkno, idesc->id_numfrags)) {
+       if (chkrange(idesc->id_blkno, idesc->id_numfrags)) {
                idesc->id_filesize -= blksiz;
                return (SKIP);
        }
                idesc->id_filesize -= blksiz;
                return (SKIP);
        }
@@ -95,7 +95,7 @@ dirscan(idesc)
        for (dp = fsck_readdir(idesc); dp != NULL; dp = fsck_readdir(idesc)) {
                dsize = dp->d_reclen;
                bcopy((char *)dp, dbuf, dsize);
        for (dp = fsck_readdir(idesc); dp != NULL; dp = fsck_readdir(idesc)) {
                dsize = dp->d_reclen;
                bcopy((char *)dp, dbuf, dsize);
-               idesc->id_dirp = (DIRECT *)dbuf;
+               idesc->id_dirp = (struct direct *)dbuf;
                if ((n = (*idesc->id_func)(idesc)) & ALTERED) {
                        bp = getdirblk(idesc->id_blkno, blksiz);
                        bcopy(dbuf, (char *)dp, dsize);
                if ((n = (*idesc->id_func)(idesc)) & ALTERED) {
                        bp = getdirblk(idesc->id_blkno, blksiz);
                        bcopy(dbuf, (char *)dp, dsize);
@@ -111,19 +111,19 @@ dirscan(idesc)
 /*
  * get next entry in a directory.
  */
 /*
  * get next entry in a directory.
  */
-DIRECT *
+struct direct *
 fsck_readdir(idesc)
        register struct inodesc *idesc;
 {
 fsck_readdir(idesc)
        register struct inodesc *idesc;
 {
-       register DIRECT *dp, *ndp;
-       register BUFAREA *bp;
+       register struct direct *dp, *ndp;
+       register struct bufarea *bp;
        long size, blksiz;
 
        blksiz = idesc->id_numfrags * sblock.fs_fsize;
        bp = getdirblk(idesc->id_blkno, blksiz);
        if (idesc->id_loc % DIRBLKSIZ == 0 && idesc->id_filesize > 0 &&
            idesc->id_loc < blksiz) {
        long size, blksiz;
 
        blksiz = idesc->id_numfrags * sblock.fs_fsize;
        bp = getdirblk(idesc->id_blkno, blksiz);
        if (idesc->id_loc % DIRBLKSIZ == 0 && idesc->id_filesize > 0 &&
            idesc->id_loc < blksiz) {
-               dp = (DIRECT *)(bp->b_un.b_buf + idesc->id_loc);
+               dp = (struct direct *)(bp->b_un.b_buf + idesc->id_loc);
                if (dircheck(idesc, dp))
                        goto dpok;
                idesc->id_loc += DIRBLKSIZ;
                if (dircheck(idesc, dp))
                        goto dpok;
                idesc->id_loc += DIRBLKSIZ;
@@ -139,12 +139,12 @@ fsck_readdir(idesc)
 dpok:
        if (idesc->id_filesize <= 0 || idesc->id_loc >= blksiz)
                return NULL;
 dpok:
        if (idesc->id_filesize <= 0 || idesc->id_loc >= blksiz)
                return NULL;
-       dp = (DIRECT *)(bp->b_un.b_buf + idesc->id_loc);
+       dp = (struct direct *)(bp->b_un.b_buf + idesc->id_loc);
        idesc->id_loc += dp->d_reclen;
        idesc->id_filesize -= dp->d_reclen;
        if ((idesc->id_loc % DIRBLKSIZ) == 0)
                return (dp);
        idesc->id_loc += dp->d_reclen;
        idesc->id_filesize -= dp->d_reclen;
        if ((idesc->id_loc % DIRBLKSIZ) == 0)
                return (dp);
-       ndp = (DIRECT *)(bp->b_un.b_buf + idesc->id_loc);
+       ndp = (struct direct *)(bp->b_un.b_buf + idesc->id_loc);
        if (idesc->id_loc < blksiz && idesc->id_filesize > 0 &&
            dircheck(idesc, ndp) == 0) {
                size = DIRBLKSIZ - (idesc->id_loc % DIRBLKSIZ);
        if (idesc->id_loc < blksiz && idesc->id_filesize > 0 &&
            dircheck(idesc, ndp) == 0) {
                size = DIRBLKSIZ - (idesc->id_loc % DIRBLKSIZ);
@@ -163,7 +163,7 @@ dpok:
  */
 dircheck(idesc, dp)
        struct inodesc *idesc;
  */
 dircheck(idesc, dp)
        struct inodesc *idesc;
-       register DIRECT *dp;
+       register struct direct *dp;
 {
        register int size;
        register char *cp;
 {
        register int size;
        register char *cp;
@@ -171,7 +171,7 @@ dircheck(idesc, dp)
 
        size = DIRSIZ(dp);
        spaceleft = DIRBLKSIZ - (idesc->id_loc % DIRBLKSIZ);
 
        size = DIRSIZ(dp);
        spaceleft = DIRBLKSIZ - (idesc->id_loc % DIRBLKSIZ);
-       if (dp->d_ino < imax &&
+       if (dp->d_ino < maxino &&
            dp->d_reclen != 0 &&
            dp->d_reclen <= spaceleft &&
            (dp->d_reclen & 0x3) == 0 &&
            dp->d_reclen != 0 &&
            dp->d_reclen <= spaceleft &&
            (dp->d_reclen & 0x3) == 0 &&
@@ -189,22 +189,23 @@ dircheck(idesc, dp)
        return (0);
 }
 
        return (0);
 }
 
-direrr(ino, s)
+direrror(ino, errmesg)
        ino_t ino;
        ino_t ino;
-       char *s;
+       char *errmesg;
 {
 {
-       register DINODE *dp;
+       register struct dinode *dp;
 
 
-       pwarn("%s ", s);
+       pwarn("%s ", errmesg);
        pinode(ino);
        printf("\n");
        pinode(ino);
        printf("\n");
-       if (ino < ROOTINO || ino > imax) {
+       if (ino < ROOTINO || ino > maxino) {
                pfatal("NAME=%s\n", pathname);
                return;
        }
        dp = ginode(ino);
        if (ftypeok(dp))
                pfatal("NAME=%s\n", pathname);
                return;
        }
        dp = ginode(ino);
        if (ftypeok(dp))
-               pfatal("%s=%s\n", DIRCT(dp) ? "DIR" : "FILE", pathname);
+               pfatal("%s=%s\n",
+                   (dp->di_mode & IFMT) == IFDIR ? "DIR" : "FILE", pathname);
        else
                pfatal("NAME=%s\n", pathname);
 }
        else
                pfatal("NAME=%s\n", pathname);
 }
@@ -213,7 +214,7 @@ adjust(idesc, lcnt)
        register struct inodesc *idesc;
        short lcnt;
 {
        register struct inodesc *idesc;
        short lcnt;
 {
-       register DINODE *dp;
+       register struct dinode *dp;
 
        dp = ginode(idesc->id_number);
        if (dp->di_nlink == lcnt) {
 
        dp = ginode(idesc->id_number);
        if (dp->di_nlink == lcnt) {
@@ -221,10 +222,10 @@ adjust(idesc, lcnt)
                        clri(idesc, "UNREF", 0);
        } else {
                pwarn("LINK COUNT %s", (lfdir == idesc->id_number) ? lfname :
                        clri(idesc, "UNREF", 0);
        } else {
                pwarn("LINK COUNT %s", (lfdir == idesc->id_number) ? lfname :
-                       (DIRCT(dp) ? "DIR" : "FILE"));
+                       ((dp->di_mode & IFMT) == IFDIR ? "DIR" : "FILE"));
                pinode(idesc->id_number);
                printf(" COUNT %d SHOULD BE %d",
                pinode(idesc->id_number);
                printf(" COUNT %d SHOULD BE %d",
-                       dp->di_nlink, dp->di_nlink-lcnt);
+                       dp->di_nlink, dp->di_nlink - lcnt);
                if (preen) {
                        if (lcnt < 0) {
                                printf("\n");
                if (preen) {
                        if (lcnt < 0) {
                                printf("\n");
@@ -242,8 +243,8 @@ adjust(idesc, lcnt)
 mkentry(idesc)
        struct inodesc *idesc;
 {
 mkentry(idesc)
        struct inodesc *idesc;
 {
-       register DIRECT *dirp = idesc->id_dirp;
-       DIRECT newent;
+       register struct direct *dirp = idesc->id_dirp;
+       struct direct newent;
        int newlen, oldlen;
 
        newent.d_namlen = 11;
        int newlen, oldlen;
 
        newent.d_namlen = 11;
@@ -260,26 +261,26 @@ mkentry(idesc)
        dirp->d_ino = idesc->id_parent; /* ino to be entered is in id_parent */
        dirp->d_reclen = newent.d_reclen;
        dirp->d_namlen = strlen(idesc->id_name);
        dirp->d_ino = idesc->id_parent; /* ino to be entered is in id_parent */
        dirp->d_reclen = newent.d_reclen;
        dirp->d_namlen = strlen(idesc->id_name);
-       bcopy(idesc->id_name, dirp->d_name, dirp->d_namlen + 1);
+       bcopy(idesc->id_name, dirp->d_name, (int)dirp->d_namlen + 1);
        return (ALTERED|STOP);
 }
 
 chgino(idesc)
        struct inodesc *idesc;
 {
        return (ALTERED|STOP);
 }
 
 chgino(idesc)
        struct inodesc *idesc;
 {
-       register DIRECT *dirp = idesc->id_dirp;
+       register struct direct *dirp = idesc->id_dirp;
 
 
-       if (bcmp(dirp->d_name, idesc->id_name, dirp->d_namlen + 1))
+       if (bcmp(dirp->d_name, idesc->id_name, (int)dirp->d_namlen + 1))
                return (KEEPON);
                return (KEEPON);
-       dirp->d_ino = idesc->id_parent;;
+       dirp->d_ino = idesc->id_parent;
        return (ALTERED|STOP);
 }
 
        return (ALTERED|STOP);
 }
 
-linkup(orphan, pdir)
+linkup(orphan, parentdir)
        ino_t orphan;
        ino_t orphan;
-       ino_t pdir;
+       ino_t parentdir;
 {
 {
-       register DINODE *dp;
+       register struct dinode *dp;
        int lostdir, len;
        ino_t oldlfdir;
        struct inodesc idesc;
        int lostdir, len;
        ino_t oldlfdir;
        struct inodesc idesc;
@@ -288,7 +289,7 @@ linkup(orphan, pdir)
 
        bzero((char *)&idesc, sizeof(struct inodesc));
        dp = ginode(orphan);
 
        bzero((char *)&idesc, sizeof(struct inodesc));
        dp = ginode(orphan);
-       lostdir = DIRCT(dp);
+       lostdir = (dp->di_mode & IFMT) == IFDIR;
        pwarn("UNREF %s ", lostdir ? "DIR" : "FILE");
        pinode(orphan);
        if (preen && dp->di_size == 0)
        pwarn("UNREF %s ", lostdir ? "DIR" : "FILE");
        pinode(orphan);
        if (preen && dp->di_size == 0)
@@ -312,7 +313,7 @@ linkup(orphan, pdir)
                } else {
                        pwarn("NO lost+found DIRECTORY");
                        if (preen || reply("CREATE")) {
                } else {
                        pwarn("NO lost+found DIRECTORY");
                        if (preen || reply("CREATE")) {
-                               lfdir = allocdir(ROOTINO, 0, lfmode);
+                               lfdir = allocdir(ROOTINO, (ino_t)0, lfmode);
                                if (lfdir != 0) {
                                        if (makeentry(ROOTINO, lfdir, lfname) != 0) {
                                                if (preen)
                                if (lfdir != 0) {
                                        if (makeentry(ROOTINO, lfdir, lfname) != 0) {
                                                if (preen)
@@ -333,12 +334,12 @@ linkup(orphan, pdir)
                }
        }
        dp = ginode(lfdir);
                }
        }
        dp = ginode(lfdir);
-       if (!DIRCT(dp)) {
+       if ((dp->di_mode & IFMT) != IFDIR) {
                pfatal("lost+found IS NOT A DIRECTORY");
                if (reply("REALLOCATE") == 0)
                        return (0);
                oldlfdir = lfdir;
                pfatal("lost+found IS NOT A DIRECTORY");
                if (reply("REALLOCATE") == 0)
                        return (0);
                oldlfdir = lfdir;
-               if ((lfdir = allocdir(ROOTINO, 0, lfmode)) == 0) {
+               if ((lfdir = allocdir(ROOTINO, (ino_t)0, lfmode)) == 0) {
                        pfatal("SORRY. CANNOT CREATE lost+found DIRECTORY\n\n");
                        return (0);
                }
                        pfatal("SORRY. CANNOT CREATE lost+found DIRECTORY\n\n");
                        return (0);
                }
@@ -390,7 +391,7 @@ linkup(orphan, pdir)
                inodirty();
                lncntp[lfdir]++;
                pwarn("DIR I=%u CONNECTED. ", orphan);
                inodirty();
                lncntp[lfdir]++;
                pwarn("DIR I=%u CONNECTED. ", orphan);
-               printf("PARENT WAS I=%u\n", pdir);
+               printf("PARENT WAS I=%u\n", parentdir);
                if (preen == 0)
                        printf("\n");
        }
                if (preen == 0)
                        printf("\n");
        }
@@ -404,12 +405,13 @@ makeentry(parent, ino, name)
        ino_t parent, ino;
        char *name;
 {
        ino_t parent, ino;
        char *name;
 {
-       DINODE *dp;
+       struct dinode *dp;
        struct inodesc idesc;
        
        struct inodesc idesc;
        
-       if (parent < ROOTINO || parent >= imax || ino < ROOTINO || ino >= imax)
+       if (parent < ROOTINO || parent >= maxino ||
+           ino < ROOTINO || ino >= maxino)
                return (0);
                return (0);
-       bzero(&idesc, sizeof(struct inodesc));
+       bzero((char *)&idesc, sizeof(struct inodesc));
        idesc.id_type = DATA;
        idesc.id_func = mkentry;
        idesc.id_number = parent;
        idesc.id_type = DATA;
        idesc.id_func = mkentry;
        idesc.id_number = parent;
@@ -432,10 +434,10 @@ makeentry(parent, ino, name)
  * Attempt to expand the size of a directory
  */
 expanddir(dp)
  * Attempt to expand the size of a directory
  */
 expanddir(dp)
-       register DINODE *dp;
+       register struct dinode *dp;
 {
        daddr_t lastbn, newblk;
 {
        daddr_t lastbn, newblk;
-       register BUFAREA *bp;
+       register struct bufarea *bp;
        char *cp, firstblk[DIRBLKSIZ];
 
        lastbn = lblkno(&sblock, dp->di_size);
        char *cp, firstblk[DIRBLKSIZ];
 
        lastbn = lblkno(&sblock, dp->di_size);
@@ -492,8 +494,8 @@ allocdir(parent, request, mode)
 {
        ino_t ino;
        char *cp;
 {
        ino_t ino;
        char *cp;
-       DINODE *dp;
-       register BUFAREA *bp;
+       struct dinode *dp;
+       register struct bufarea *bp;
 
        ino = allocino(request, IFDIR|mode);
        dirhead.dot_ino = ino;
 
        ino = allocino(request, IFDIR|mode);
        dirhead.dot_ino = ino;
@@ -537,7 +539,7 @@ allocdir(parent, request, mode)
 freedir(ino, parent)
        ino_t ino, parent;
 {
 freedir(ino, parent)
        ino_t ino, parent;
 {
-       DINODE *dp;
+       struct dinode *dp;
 
        if (ino != parent) {
                dp = ginode(parent);
 
        if (ino != parent) {
                dp = ginode(parent);
@@ -559,7 +561,7 @@ lftempname(bufp, ino)
        int namlen;
 
        cp = bufp + 2;
        int namlen;
 
        cp = bufp + 2;
-       for (in = imax; in > 0; in /= 10)
+       for (in = maxino; in > 0; in /= 10)
                cp++;
        *--cp = 0;
        namlen = cp - bufp;
                cp++;
        *--cp = 0;
        namlen = cp - bufp;
@@ -576,12 +578,12 @@ lftempname(bufp, ino)
  * Get a directory block.
  * Insure that it is held until another is requested.
  */
  * Get a directory block.
  * Insure that it is held until another is requested.
  */
-BUFAREA *
+struct bufarea *
 getdirblk(blkno, size)
        daddr_t blkno;
        long size;
 {
 getdirblk(blkno, size)
        daddr_t blkno;
        long size;
 {
-       static BUFAREA *pbp = 0;
+       static struct bufarea *pbp = 0;
 
        if (pbp != 0)
                pbp->b_flags &= ~B_INUSE;
 
        if (pbp != 0)
                pbp->b_flags &= ~B_INUSE;
index 0a512e5..d1a3081 100644 (file)
@@ -3,15 +3,13 @@
  * All rights reserved.  The Berkeley software License Agreement
  * specifies the terms and conditions for redistribution.
  *
  * All rights reserved.  The Berkeley software License Agreement
  * specifies the terms and conditions for redistribution.
  *
- *     @(#)fsck.h      5.8 (Berkeley) %G%
+ *     @(#)fsck.h      5.9 (Berkeley) %G%
  */
 
 #define        MAXDUP          10       /* limit on dup blks (per inode) */
 #define        MAXBAD          10       /* limit on bad blks (per inode) */
 #define MAXBUFSPACE    128*1024 /* maximum space to allocate to buffers */
 
  */
 
 #define        MAXDUP          10       /* limit on dup blks (per inode) */
 #define        MAXBAD          10       /* limit on bad blks (per inode) */
 #define MAXBUFSPACE    128*1024 /* maximum space to allocate to buffers */
 
-typedef        int     (*SIG_TYP)();
-
 #ifndef BUFSIZ
 #define BUFSIZ 1024
 #endif
 #ifndef BUFSIZ
 #define BUFSIZ 1024
 #endif
@@ -23,14 +21,6 @@ typedef      int     (*SIG_TYP)();
 #define        DCLEAR  05              /* directory is to be cleared */
 #define        FCLEAR  06              /* file is to be cleared */
 
 #define        DCLEAR  05              /* directory is to be cleared */
 #define        FCLEAR  06              /* file is to be cleared */
 
-typedef struct dinode  DINODE;
-typedef struct direct  DIRECT;
-
-#define        ALLOC(dip)      (((dip)->di_mode & IFMT) != 0)
-#define        DIRCT(dip)      (((dip)->di_mode & IFMT) == IFDIR)
-#define        SPECIAL(dip) \
-       (((dip)->di_mode & IFMT) == IFBLK || ((dip)->di_mode & IFMT) == IFCHR)
-
 /*
  * buffer cache structure.
  */
 /*
  * buffer cache structure.
  */
@@ -46,37 +36,30 @@ struct bufarea {
                daddr_t *b_indir;               /* indirect block */
                struct  fs *b_fs;               /* super block */
                struct  cg *b_cg;               /* cylinder group */
                daddr_t *b_indir;               /* indirect block */
                struct  fs *b_fs;               /* super block */
                struct  cg *b_cg;               /* cylinder group */
-               struct dinode *b_dinode;        /* inode block */
+               struct  dinode *b_dinode;       /* inode block */
        } b_un;
        char    b_dirty;
 };
 
 #define        B_INUSE 1
        } b_un;
        char    b_dirty;
 };
 
 #define        B_INUSE 1
-typedef struct bufarea BUFAREA;
 
 #define        MINBUFS         5       /* minimum number of buffers required */
 
 #define        MINBUFS         5       /* minimum number of buffers required */
-BUFAREA        bufhead;                /* head of list of other blks in filesys */
-BUFAREA        sblk;                   /* file system superblock */
-BUFAREA        cgblk;                  /* cylinder group blocks */
-BUFAREA        *getdatablk();
+struct bufarea bufhead;                /* head of list of other blks in filesys */
+struct bufarea sblk;           /* file system superblock */
+struct bufarea cgblk;          /* cylinder group blocks */
+struct bufarea *getdatablk();
 
 
-#define        dirty(x)        (x)->b_dirty = 1
-#define        initbarea(x) \
-       (x)->b_dirty = 0; \
-       (x)->b_bno = (daddr_t)-1; \
-       (x)->b_flags = 0;
+#define        dirty(bp)       (bp)->b_dirty = 1
+#define        initbarea(bp) \
+       (bp)->b_dirty = 0; \
+       (bp)->b_bno = (daddr_t)-1; \
+       (bp)->b_flags = 0;
 
 #define        sbdirty()       sblk.b_dirty = 1
 #define        cgdirty()       cgblk.b_dirty = 1
 #define        sblock          (*sblk.b_un.b_fs)
 #define        cgrp            (*cgblk.b_un.b_cg)
 
 
 #define        sbdirty()       sblk.b_dirty = 1
 #define        cgdirty()       cgblk.b_dirty = 1
 #define        sblock          (*sblk.b_un.b_fs)
 #define        cgrp            (*cgblk.b_un.b_cg)
 
-struct filecntl {
-       int     rfdes;
-       int     wfdes;
-       int     mod;
-} dfile;                       /* file descriptors for filesys */
-
 enum fixstate {DONTKNOW, NOFIX, FIX};
 
 struct inodesc {
 enum fixstate {DONTKNOW, NOFIX, FIX};
 
 struct inodesc {
@@ -89,7 +72,7 @@ struct inodesc {
        long id_filesize;       /* for DATA nodes, the size of the directory */
        int id_loc;             /* for DATA nodes, current location in dir */
        int id_entryno;         /* for DATA nodes, current entry number */
        long id_filesize;       /* for DATA nodes, the size of the directory */
        int id_loc;             /* for DATA nodes, current location in dir */
        int id_entryno;         /* for DATA nodes, current entry number */
-       DIRECT *id_dirp;        /* for DATA nodes, ptr to current entry */
+       struct direct *id_dirp; /* for DATA nodes, ptr to current entry */
        char *id_name;          /* for DATA nodes, name to find or enter */
        char id_type;           /* type of descriptor, DATA or ADDR */
 };
        char *id_name;          /* for DATA nodes, name to find or enter */
        char id_type;           /* type of descriptor, DATA or ADDR */
 };
@@ -134,8 +117,7 @@ struct zlncnt {
 };
 struct zlncnt *zlnhead;                /* head of zero link count list */
 
 };
 struct zlncnt *zlnhead;                /* head of zero link count list */
 
-char   rawflg;
-char   *devname;
+char   *devname;               /* name of device being checked */
 long   dev_bsize;              /* computed value of DEV_BSIZE */
 long   secsize;                /* actual disk sector size */
 char   nflag;                  /* assume a no response */
 long   dev_bsize;              /* computed value of DEV_BSIZE */
 long   secsize;                /* actual disk sector size */
 char   nflag;                  /* assume a no response */
@@ -146,42 +128,43 @@ int       cvtflag;                /* convert to old file system format */
 char   preen;                  /* just fix normal inconsistencies */
 char   hotroot;                /* checking root device */
 char   havesb;                 /* superblock has been read */
 char   preen;                  /* just fix normal inconsistencies */
 char   hotroot;                /* checking root device */
 char   havesb;                 /* superblock has been read */
+int    fsmodified;             /* 1 => write done to file system */
+int    fsreadfd;               /* file descriptor for reading file system */
+int    fswritefd;              /* file descriptor for writing file system */
 
 
+daddr_t        maxfsblock;             /* number of blocks in the file system */
 char   *blockmap;              /* ptr to primary blk allocation map */
 char   *blockmap;              /* ptr to primary blk allocation map */
+ino_t  maxino;                 /* number of inodes in file system */
+ino_t  lastino;                /* last inode in use */
 char   *statemap;              /* ptr to inode state table */
 short  *lncntp;                /* ptr to link count table */
 
 char   pathname[BUFSIZ];       /* current pathname */
 char   *statemap;              /* ptr to inode state table */
 short  *lncntp;                /* ptr to link count table */
 
 char   pathname[BUFSIZ];       /* current pathname */
-char   *pathp;                 /* pointer to pathname position */
-char   *endpathname;
+char   *pathp;                 /* ptr to current position in pathname */
+char   *endpathname;           /* ptr to current end of pathname */
 
 
-daddr_t        fmax;                   /* number of blocks in the volume */
-ino_t  imax;                   /* number of inodes */
-ino_t  lastino;                /* hiwater mark of inodes */
 ino_t  lfdir;                  /* lost & found directory inode number */
 char   *lfname;                /* lost & found directory name */
 int    lfmode;                 /* lost & found directory creation mode */
 
 ino_t  lfdir;                  /* lost & found directory inode number */
 char   *lfname;                /* lost & found directory name */
 int    lfmode;                 /* lost & found directory creation mode */
 
-off_t  maxblk;                 /* largest logical blk in file */
-off_t  bmapsz;                 /* num chars in blockmap */
+daddr_t        n_blks;                 /* number of blocks in use */
+daddr_t        n_files;                /* number of files in use */
 
 
-daddr_t        n_blks;                 /* number of blocks used */
-daddr_t        n_files;                /* number of files seen */
-
-#define        zapino(x)       (*(x) = zino)
+#define        clearinode(dp)  (*(dp) = zino)
 struct dinode zino;
 
 struct dinode zino;
 
-#define        setbmap(x)      setbit(blockmap, x)
-#define        getbmap(x)      isset(blockmap, x)
-#define        clrbmap(x)      clrbit(blockmap, x)
-
-#define        FOUND   020
-#define        ALTERED 010
-#define        KEEPON  04
-#define        SKIP    02
-#define        STOP    01
-
-time_t time();
-DINODE *ginode();
-BUFAREA        *getblk();
-int    findino();
+#define        setbmap(blkno)  setbit(blockmap, blkno)
+#define        testbmap(blkno) isset(blockmap, blkno)
+#define        clrbmap(blkno)  clrbit(blockmap, blkno)
+
+#define        STOP    0x01
+#define        SKIP    0x02
+#define        KEEPON  0x04
+#define        ALTERED 0x08
+#define        FOUND   0x10
+
+time_t time();
+struct dinode *ginode();
+struct bufarea *getblk();
+ino_t allocino();
+int findino();
index 226144f..c9e3274 100644 (file)
@@ -5,7 +5,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)inode.c    5.9 (Berkeley) %G%";
+static char sccsid[] = "@(#)inode.c    5.10 (Berkeley) %G%";
 #endif not lint
 
 #include <sys/param.h>
 #endif not lint
 
 #include <sys/param.h>
@@ -15,20 +15,20 @@ static char sccsid[] = "@(#)inode.c 5.9 (Berkeley) %G%";
 #include <pwd.h>
 #include "fsck.h"
 
 #include <pwd.h>
 #include "fsck.h"
 
-BUFAREA *pbp = 0;
+struct bufarea *pbp = 0;
 
 ckinode(dp, idesc)
 
 ckinode(dp, idesc)
-       DINODE *dp;
+       struct dinode *dp;
        register struct inodesc *idesc;
 {
        register daddr_t *ap;
        register struct inodesc *idesc;
 {
        register daddr_t *ap;
-       int ret, n, ndb, offset;
-       DINODE dino;
+       long ret, n, ndb, offset;
+       struct dinode dino;
 
        idesc->id_fix = DONTKNOW;
        idesc->id_entryno = 0;
        idesc->id_filesize = dp->di_size;
 
        idesc->id_fix = DONTKNOW;
        idesc->id_entryno = 0;
        idesc->id_filesize = dp->di_size;
-       if (SPECIAL(dp))
+       if ((dp->di_mode & IFMT) == IFBLK || (dp->di_mode & IFMT) == IFCHR)
                return (KEEPON);
        dino = *dp;
        ndb = howmany(dino.di_size, sblock.fs_bsize);
                return (KEEPON);
        dino = *dp;
        ndb = howmany(dino.di_size, sblock.fs_bsize);
@@ -63,13 +63,13 @@ ckinode(dp, idesc)
 
 iblock(idesc, ilevel, isize)
        struct inodesc *idesc;
 
 iblock(idesc, ilevel, isize)
        struct inodesc *idesc;
-       register ilevel;
+       register long ilevel;
        long isize;
 {
        register daddr_t *ap;
        register daddr_t *aplim;
        int i, n, (*func)(), nif, sizepb;
        long isize;
 {
        register daddr_t *ap;
        register daddr_t *aplim;
        int i, n, (*func)(), nif, sizepb;
-       register BUFAREA *bp;
+       register struct bufarea *bp;
        char buf[BUFSIZ];
        extern int dirscan(), pass1check();
 
        char buf[BUFSIZ];
        extern int dirscan(), pass1check();
 
@@ -79,7 +79,7 @@ iblock(idesc, ilevel, isize)
                        return (n);
        } else
                func = dirscan;
                        return (n);
        } else
                func = dirscan;
-       if (outrange(idesc->id_blkno, idesc->id_numfrags)) /* protect thyself */
+       if (chkrange(idesc->id_blkno, idesc->id_numfrags))
                return (SKIP);
        bp = getdatablk(idesc->id_blkno, sblock.fs_bsize);
        ilevel--;
                return (SKIP);
        bp = getdatablk(idesc->id_blkno, sblock.fs_bsize);
        ilevel--;
@@ -100,7 +100,7 @@ iblock(idesc, ilevel, isize)
                                dirty(bp);
                        }
                }
                                dirty(bp);
                        }
                }
-               flush(&dfile, bp);
+               flush(fswritefd, bp);
        }
        aplim = &bp->b_un.b_indir[nif];
        for (ap = bp->b_un.b_indir, i = 1; ap < aplim; ap++, i++) {
        }
        aplim = &bp->b_un.b_indir[nif];
        for (ap = bp->b_un.b_indir, i = 1; ap < aplim; ap++, i++) {
@@ -120,31 +120,35 @@ iblock(idesc, ilevel, isize)
        return (KEEPON);
 }
 
        return (KEEPON);
 }
 
-outrange(blk, cnt)
+/*
+ * Check that a block in a legal block number.
+ * Return 0 if in range, 1 if out of range.
+ */
+chkrange(blk, cnt)
        daddr_t blk;
        int cnt;
 {
        register int c;
 
        daddr_t blk;
        int cnt;
 {
        register int c;
 
-       if ((unsigned)(blk+cnt) > fmax)
+       if ((unsigned)(blk + cnt) > maxfsblock)
                return (1);
        c = dtog(&sblock, blk);
        if (blk < cgdmin(&sblock, c)) {
                return (1);
        c = dtog(&sblock, blk);
        if (blk < cgdmin(&sblock, c)) {
-               if ((blk+cnt) > cgsblock(&sblock, c)) {
+               if ((blk + cnt) > cgsblock(&sblock, c)) {
                        if (debug) {
                                printf("blk %d < cgdmin %d;",
                                    blk, cgdmin(&sblock, c));
                        if (debug) {
                                printf("blk %d < cgdmin %d;",
                                    blk, cgdmin(&sblock, c));
-                               printf(" blk+cnt %d > cgsbase %d\n",
-                                   blk+cnt, cgsblock(&sblock, c));
+                               printf(" blk + cnt %d > cgsbase %d\n",
+                                   blk + cnt, cgsblock(&sblock, c));
                        }
                        return (1);
                }
        } else {
                        }
                        return (1);
                }
        } else {
-               if ((blk+cnt) > cgbase(&sblock, c+1)) {
+               if ((blk + cnt) > cgbase(&sblock, c+1)) {
                        if (debug)  {
                                printf("blk %d >= cgdmin %d;",
                                    blk, cgdmin(&sblock, c));
                        if (debug)  {
                                printf("blk %d >= cgdmin %d;",
                                    blk, cgdmin(&sblock, c));
-                               printf(" blk+cnt %d > sblock.fs_fpg %d\n",
+                               printf(" blk + cnt %d > sblock.fs_fpg %d\n",
                                    blk+cnt, sblock.fs_fpg);
                        }
                        return (1);
                                    blk+cnt, sblock.fs_fpg);
                        }
                        return (1);
@@ -153,14 +157,14 @@ outrange(blk, cnt)
        return (0);
 }
 
        return (0);
 }
 
-DINODE *
+struct dinode *
 ginode(inumber)
        ino_t inumber;
 {
        daddr_t iblk;
 ginode(inumber)
        ino_t inumber;
 {
        daddr_t iblk;
-       static ino_t startinum = 0;     /* blk num of first in raw area */
+       static ino_t startinum = 0;
 
 
-       if (inumber < ROOTINO || inumber > imax)
+       if (inumber < ROOTINO || inumber > maxino)
                errexit("bad inode number %d to ginode\n", inumber);
        if (startinum == 0 ||
            inumber < startinum || inumber >= startinum + INOPB(&sblock)) {
                errexit("bad inode number %d to ginode\n", inumber);
        if (startinum == 0 ||
            inumber < startinum || inumber >= startinum + INOPB(&sblock)) {
@@ -179,16 +183,17 @@ inodirty()
        dirty(pbp);
 }
 
        dirty(pbp);
 }
 
-clri(idesc, s, flg)
+clri(idesc, type, flag)
        register struct inodesc *idesc;
        register struct inodesc *idesc;
-       char *s;
-       int flg;
+       char *type;
+       int flag;
 {
 {
-       register DINODE *dp;
+       register struct dinode *dp;
 
        dp = ginode(idesc->id_number);
 
        dp = ginode(idesc->id_number);
-       if (flg == 1) {
-               pwarn("%s %s", s, DIRCT(dp) ? "DIR" : "FILE");
+       if (flag == 1) {
+               pwarn("%s %s", type,
+                   (dp->di_mode & IFMT) == IFDIR ? "DIR" : "FILE");
                pinode(idesc->id_number);
        }
        if (preen || reply("CLEAR") == 1) {
                pinode(idesc->id_number);
        }
        if (preen || reply("CLEAR") == 1) {
@@ -196,7 +201,7 @@ clri(idesc, s, flg)
                        printf(" (CLEARED)\n");
                n_files--;
                (void)ckinode(dp, idesc);
                        printf(" (CLEARED)\n");
                n_files--;
                (void)ckinode(dp, idesc);
-               zapino(dp);
+               clearinode(dp);
                statemap[idesc->id_number] = USTATE;
                inodirty();
        }
                statemap[idesc->id_number] = USTATE;
                inodirty();
        }
@@ -205,23 +210,23 @@ clri(idesc, s, flg)
 findname(idesc)
        struct inodesc *idesc;
 {
 findname(idesc)
        struct inodesc *idesc;
 {
-       register DIRECT *dirp = idesc->id_dirp;
+       register struct direct *dirp = idesc->id_dirp;
 
        if (dirp->d_ino != idesc->id_parent)
                return (KEEPON);
 
        if (dirp->d_ino != idesc->id_parent)
                return (KEEPON);
-       bcopy(dirp->d_name, idesc->id_name, dirp->d_namlen + 1);
+       bcopy(dirp->d_name, idesc->id_name, (int)dirp->d_namlen + 1);
        return (STOP|FOUND);
 }
 
 findino(idesc)
        struct inodesc *idesc;
 {
        return (STOP|FOUND);
 }
 
 findino(idesc)
        struct inodesc *idesc;
 {
-       register DIRECT *dirp = idesc->id_dirp;
+       register struct direct *dirp = idesc->id_dirp;
 
        if (dirp->d_ino == 0)
                return (KEEPON);
        if (strcmp(dirp->d_name, idesc->id_name) == 0 &&
 
        if (dirp->d_ino == 0)
                return (KEEPON);
        if (strcmp(dirp->d_name, idesc->id_name) == 0 &&
-           dirp->d_ino >= ROOTINO && dirp->d_ino <= imax) {
+           dirp->d_ino >= ROOTINO && dirp->d_ino <= maxino) {
                idesc->id_parent = dirp->d_ino;
                return (STOP|FOUND);
        }
                idesc->id_parent = dirp->d_ino;
                return (STOP|FOUND);
        }
@@ -231,13 +236,13 @@ findino(idesc)
 pinode(ino)
        ino_t ino;
 {
 pinode(ino)
        ino_t ino;
 {
-       register DINODE *dp;
+       register struct dinode *dp;
        register char *p;
        struct passwd *pw;
        char *ctime();
 
        printf(" I=%u ", ino);
        register char *p;
        struct passwd *pw;
        char *ctime();
 
        printf(" I=%u ", ino);
-       if (ino < ROOTINO || ino > imax)
+       if (ino < ROOTINO || ino > maxino)
                return;
        dp = ginode(ino);
        printf(" OWNER=");
                return;
        dp = ginode(ino);
        printf(" OWNER=");
@@ -250,16 +255,16 @@ pinode(ino)
                printf("%s: ", devname);
        printf("SIZE=%ld ", dp->di_size);
        p = ctime(&dp->di_mtime);
                printf("%s: ", devname);
        printf("SIZE=%ld ", dp->di_size);
        p = ctime(&dp->di_mtime);
-       printf("MTIME=%12.12s %4.4s ", p+4, p+20);
+       printf("MTIME=%12.12s %4.4s ", p + 4, p + 20);
 }
 
 }
 
-blkerr(ino, s, blk)
+blkerror(ino, type, blk)
        ino_t ino;
        ino_t ino;
-       char *s;
+       char *type;
        daddr_t blk;
 {
 
        daddr_t blk;
 {
 
-       pfatal("%ld %s I=%u", blk, s, ino);
+       pfatal("%ld %s I=%u", blk, type, ino);
        printf("\n");
        switch (statemap[ino]) {
 
        printf("\n");
        switch (statemap[ino]) {
 
@@ -290,16 +295,16 @@ allocino(request, type)
        int type;
 {
        register ino_t ino;
        int type;
 {
        register ino_t ino;
-       register DINODE *dp;
+       register struct dinode *dp;
 
        if (request == 0)
                request = ROOTINO;
        else if (statemap[request] != USTATE)
                return (0);
 
        if (request == 0)
                request = ROOTINO;
        else if (statemap[request] != USTATE)
                return (0);
-       for (ino = request; ino < imax; ino++)
+       for (ino = request; ino < maxino; ino++)
                if (statemap[ino] == USTATE)
                        break;
                if (statemap[ino] == USTATE)
                        break;
-       if (ino == imax)
+       if (ino == maxino)
                return (0);
        switch (type & IFMT) {
        case IFDIR:
                return (0);
        switch (type & IFMT) {
        case IFDIR:
@@ -313,7 +318,7 @@ allocino(request, type)
                return (0);
        }
        dp = ginode(ino);
                return (0);
        }
        dp = ginode(ino);
-       dp->di_db[0] = allocblk(1);
+       dp->di_db[0] = allocblk((long)1);
        if (dp->di_db[0] == 0) {
                statemap[ino] = USTATE;
                return (0);
        if (dp->di_db[0] == 0) {
                statemap[ino] = USTATE;
                return (0);
@@ -336,7 +341,7 @@ freeino(ino)
 {
        struct inodesc idesc;
        extern int pass4check();
 {
        struct inodesc idesc;
        extern int pass4check();
-       DINODE *dp;
+       struct dinode *dp;
 
        bzero((char *)&idesc, sizeof(struct inodesc));
        idesc.id_type = ADDR;
 
        bzero((char *)&idesc, sizeof(struct inodesc));
        idesc.id_type = ADDR;
@@ -344,7 +349,7 @@ freeino(ino)
        idesc.id_number = ino;
        dp = ginode(ino);
        (void)ckinode(dp, &idesc);
        idesc.id_number = ino;
        dp = ginode(ino);
        (void)ckinode(dp, &idesc);
-       zapino(dp);
+       clearinode(dp);
        inodirty();
        statemap[ino] = USTATE;
        n_files--;
        inodirty();
        statemap[ino] = USTATE;
        n_files--;
index daf0c06..08f40e0 100644 (file)
@@ -11,7 +11,7 @@ char copyright[] =
 #endif not lint
 
 #ifndef lint
 #endif not lint
 
 #ifndef lint
-static char sccsid[] = "@(#)main.c     5.15 (Berkeley) %G%";
+static char sccsid[] = "@(#)main.c     5.16 (Berkeley) %G%";
 #endif not lint
 
 #include <sys/param.h>
 #endif not lint
 
 #include <sys/param.h>
@@ -96,13 +96,13 @@ main(argc, argv)
                        printf("** lost+found creation mode %o\n", lfmode);
                        break;
 
                        printf("** lost+found creation mode %o\n", lfmode);
                        break;
 
-               case 'n':       /* default no answer flag */
+               case 'n':
                case 'N':
                        nflag++;
                        yflag = 0;
                        break;
 
                case 'N':
                        nflag++;
                        yflag = 0;
                        break;
 
-               case 'y':       /* default yes answer flag */
+               case 'y':
                case 'Y':
                        yflag++;
                        nflag = 0;
                case 'Y':
                        yflag++;
                        nflag = 0;
@@ -245,7 +245,7 @@ finddisk(name)
        if ((*dkp = (struct disk *)malloc(sizeof(struct disk))) == NULL)
                errexit("out of memory");
        dk = *dkp;
        if ((*dkp = (struct disk *)malloc(sizeof(struct disk))) == NULL)
                errexit("out of memory");
        dk = *dkp;
-       if ((dk->name = malloc(len + 1)) == NULL)
+       if ((dk->name = malloc((unsigned int)len + 1)) == NULL)
                errexit("out of memory");
        strncpy(dk->name, name, len);
        dk->name[len] = '\0';
                errexit("out of memory");
        strncpy(dk->name, name, len);
        dk->name[len] = '\0';
@@ -270,10 +270,10 @@ addpart(name, fsname)
        if ((*ppt = (struct part *)malloc(sizeof(struct part))) == NULL)
                errexit("out of memory");
        pt = *ppt;
        if ((*ppt = (struct part *)malloc(sizeof(struct part))) == NULL)
                errexit("out of memory");
        pt = *ppt;
-       if ((pt->name = malloc(strlen(name) + 1)) == NULL)
+       if ((pt->name = malloc((unsigned int)strlen(name) + 1)) == NULL)
                errexit("out of memory");
        strcpy(pt->name, name);
                errexit("out of memory");
        strcpy(pt->name, name);
-       if ((pt->fsname = malloc(strlen(fsname) + 1)) == NULL)
+       if ((pt->fsname = malloc((unsigned int)strlen(fsname) + 1)) == NULL)
                errexit("out of memory");
        strcpy(pt->fsname, fsname);
        pt->next = NULL;
                errexit("out of memory");
        strcpy(pt->fsname, fsname);
        pt->next = NULL;
@@ -369,14 +369,15 @@ checkfilesys(filesys)
            n_files, n_blks, n_ffree + sblock.fs_frag * n_bfree);
        printf("(%d frags, %d blocks, %.1f%% fragmentation)\n",
            n_ffree, n_bfree, (float)(n_ffree * 100) / sblock.fs_dsize);
            n_files, n_blks, n_ffree + sblock.fs_frag * n_bfree);
        printf("(%d frags, %d blocks, %.1f%% fragmentation)\n",
            n_ffree, n_bfree, (float)(n_ffree * 100) / sblock.fs_dsize);
-       if (debug && (n_files -= imax - ROOTINO - sblock.fs_cstotal.cs_nifree))
+       if (debug &&
+           (n_files -= maxino - ROOTINO - sblock.fs_cstotal.cs_nifree))
                printf("%d files missing\n", n_files);
        if (debug) {
                n_blks += sblock.fs_ncg *
                        (cgdmin(&sblock, 0) - cgsblock(&sblock, 0));
                n_blks += cgsblock(&sblock, 0) - cgbase(&sblock, 0);
                n_blks += howmany(sblock.fs_cssize, sblock.fs_fsize);
                printf("%d files missing\n", n_files);
        if (debug) {
                n_blks += sblock.fs_ncg *
                        (cgdmin(&sblock, 0) - cgsblock(&sblock, 0));
                n_blks += cgsblock(&sblock, 0) - cgbase(&sblock, 0);
                n_blks += howmany(sblock.fs_cssize, sblock.fs_fsize);
-               if (n_blks -= fmax - (n_ffree + sblock.fs_frag * n_bfree))
+               if (n_blks -= maxfsblock - (n_ffree + sblock.fs_frag * n_bfree))
                        printf("%d blocks missing\n", n_blks);
                if (duplist != NULL) {
                        printf("The following duplicate blocks remain:");
                        printf("%d blocks missing\n", n_blks);
                if (duplist != NULL) {
                        printf("The following duplicate blocks remain:");
@@ -393,7 +394,7 @@ checkfilesys(filesys)
        }
        zlnhead = (struct zlncnt *)0;
        duplist = (struct dups *)0;
        }
        zlnhead = (struct zlncnt *)0;
        duplist = (struct dups *)0;
-       if (dfile.mod) {
+       if (fsmodified) {
                (void)time(&sblock.fs_time);
                sbdirty();
        }
                (void)time(&sblock.fs_time);
                sbdirty();
        }
@@ -401,7 +402,7 @@ checkfilesys(filesys)
        free(blockmap);
        free(statemap);
        free((char *)lncntp);
        free(blockmap);
        free(statemap);
        free((char *)lncntp);
-       if (!dfile.mod)
+       if (!fsmodified)
                return;
        if (!preen) {
                printf("\n***** FILE SYSTEM WAS MODIFIED *****\n");
                return;
        if (!preen) {
                printf("\n***** FILE SYSTEM WAS MODIFIED *****\n");
@@ -420,16 +421,16 @@ blockcheck(name)
 {
        struct stat stslash, stblock, stchar;
        char *raw;
 {
        struct stat stslash, stblock, stchar;
        char *raw;
-       int looped = 0;
+       int retried = 0;
 
        hotroot = 0;
 
        hotroot = 0;
-       if (stat("/", &stslash) < 0){
+       if (stat("/", &stslash) < 0) {
                perror("/");
                printf("Can't stat root\n");
                return (0);
        }
 retry:
                perror("/");
                printf("Can't stat root\n");
                return (0);
        }
 retry:
-       if (stat(name, &stblock) < 0){
+       if (stat(name, &stblock) < 0) {
                perror(name);
                printf("Can't stat %s\n", name);
                return (0);
                perror(name);
                printf("Can't stat %s\n", name);
                return (0);
@@ -440,24 +441,20 @@ retry:
                        return (name);
                }
                raw = rawname(name);
                        return (name);
                }
                raw = rawname(name);
-               if (stat(raw, &stchar) < 0){
+               if (stat(raw, &stchar) < 0) {
                        perror(raw);
                        printf("Can't stat %s\n", raw);
                        return (name);
                }
                        perror(raw);
                        printf("Can't stat %s\n", raw);
                        return (name);
                }
-               if ((stchar.st_mode & S_IFMT) == S_IFCHR)
+               if ((stchar.st_mode & S_IFMT) == S_IFCHR) {
                        return (raw);
                        return (raw);
-               else {
+               else {
                        printf("%s is not a character device\n", raw);
                        return (name);
                }
                        printf("%s is not a character device\n", raw);
                        return (name);
                }
-       } else if ((stblock.st_mode & S_IFMT) == S_IFCHR) {
-               if (looped) {
-                       printf("Can't make sense out of name %s\n", name);
-                       return (0);
-               }
+       } else if ((stblock.st_mode & S_IFMT) == S_IFCHR && !retried) {
                name = unrawname(name);
                name = unrawname(name);
-               looped++;
+               retried++;
                goto retry;
        }
        printf("Can't make sense out of name %s\n", name);
                goto retry;
        }
        printf("Can't make sense out of name %s\n", name);
@@ -465,37 +462,37 @@ retry:
 }
 
 char *
 }
 
 char *
-unrawname(cp)
-       char *cp;
+unrawname(name)
+       char *name;
 {
 {
-       char *dp = rindex(cp, '/');
+       char *dp;
        struct stat stb;
 
        struct stat stb;
 
-       if (dp == 0)
-               return (cp);
-       if (stat(cp, &stb) < 0)
-               return (cp);
-       if ((stb.st_mode&S_IFMT) != S_IFCHR)
-               return (cp);
-       if (*(dp+1) != 'r')
-               return (cp);
-       (void)strcpy(dp+1, dp+2);
-       return (cp);
+       if ((dp = rindex(name, '/')) == 0)
+               return (name);
+       if (stat(name, &stb) < 0)
+               return (name);
+       if ((stb.st_mode & S_IFMT) != S_IFCHR)
+               return (name);
+       if (*(dp + 1) != 'r')
+               return (name);
+       (void)strcpy(dp + 1, dp + 2);
+       return (name);
 }
 
 char *
 }
 
 char *
-rawname(cp)
-       char *cp;
+rawname(name)
+       char *name;
 {
        static char rawbuf[32];
 {
        static char rawbuf[32];
-       char *dp = rindex(cp, '/');
+       char *dp;
 
 
-       if (dp == 0)
+       if ((dp = rindex(name, '/')) == 0)
                return (0);
        *dp = 0;
                return (0);
        *dp = 0;
-       (void)strcpy(rawbuf, cp);
+       (void)strcpy(rawbuf, name);
        *dp = '/';
        (void)strcat(rawbuf, "/r");
        *dp = '/';
        (void)strcat(rawbuf, "/r");
-       (void)strcat(rawbuf, dp+1);
+       (void)strcat(rawbuf, dp + 1);
        return (rawbuf);
 }
        return (rawbuf);
 }
index 3674958..7c82f00 100644 (file)
@@ -5,7 +5,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)pass1.c    5.7 (Berkeley) %G%";
+static char sccsid[] = "@(#)pass1.c    5.8 (Berkeley) %G%";
 #endif not lint
 
 #include <sys/param.h>
 #endif not lint
 
 #include <sys/param.h>
@@ -20,9 +20,9 @@ int pass1check();
 pass1()
 {
        register int c, i, j;
 pass1()
 {
        register int c, i, j;
-       register DINODE *dp;
+       register struct dinode *dp;
        struct zlncnt *zlnp;
        struct zlncnt *zlnp;
-       int ndb, partial, cgd;
+       int ndb, cgd;
        struct inodesc idesc;
        ino_t inumber;
 
        struct inodesc idesc;
        ino_t inumber;
 
@@ -52,7 +52,7 @@ pass1()
                        if (inumber < ROOTINO)
                                continue;
                        dp = ginode(inumber);
                        if (inumber < ROOTINO)
                                continue;
                        dp = ginode(inumber);
-                       if (!ALLOC(dp)) {
+                       if ((dp->di_mode & IFMT) == 0) {
                                if (bcmp((char *)dp->di_db, (char *)zino.di_db,
                                        NDADDR * sizeof(daddr_t)) ||
                                    bcmp((char *)dp->di_ib, (char *)zino.di_ib,
                                if (bcmp((char *)dp->di_db, (char *)zino.di_db,
                                        NDADDR * sizeof(daddr_t)) ||
                                    bcmp((char *)dp->di_ib, (char *)zino.di_ib,
@@ -61,7 +61,7 @@ pass1()
                                        pfatal("PARTIALLY ALLOCATED INODE I=%u",
                                                inumber);
                                        if (reply("CLEAR") == 1) {
                                        pfatal("PARTIALLY ALLOCATED INODE I=%u",
                                                inumber);
                                        if (reply("CLEAR") == 1) {
-                                               zapino(dp);
+                                               clearinode(dp);
                                                inodirty();
                                        }
                                }
                                                inodirty();
                                        }
                                }
@@ -88,7 +88,8 @@ pass1()
                                                dp->di_size, ndb);
                                goto unknown;
                        }
                                                dp->di_size, ndb);
                                goto unknown;
                        }
-                       if (SPECIAL(dp))
+                       if ((dp->di_mode & IFMT) == IFBLK ||
+                           (dp->di_mode & IFMT) == IFCHR)
                                ndb++;
                        for (j = ndb; j < NDADDR; j++)
                                if (dp->di_db[j] != 0) {
                                ndb++;
                        for (j = ndb; j < NDADDR; j++)
                                if (dp->di_db[j] != 0) {
@@ -122,8 +123,9 @@ pass1()
                                        zlnhead = zlnp;
                                }
                        }
                                        zlnhead = zlnp;
                                }
                        }
-                       statemap[inumber] = DIRCT(dp) ? DSTATE : FSTATE;
-                       badblk = dupblk = 0; maxblk = 0;
+                       statemap[inumber] =
+                           (dp->di_mode & IFMT) == IFDIR ? DSTATE : FSTATE;
+                       badblk = dupblk = 0;
                        idesc.id_number = inumber;
                        (void)ckinode(dp, &idesc);
                        idesc.id_entryno *= btodb(sblock.fs_fsize);
                        idesc.id_number = inumber;
                        (void)ckinode(dp, &idesc);
                        idesc.id_entryno *= btodb(sblock.fs_fsize);
@@ -143,7 +145,7 @@ pass1()
                        statemap[inumber] = FCLEAR;
                        if (reply("CLEAR") == 1) {
                                statemap[inumber] = USTATE;
                        statemap[inumber] = FCLEAR;
                        if (reply("CLEAR") == 1) {
                                statemap[inumber] = USTATE;
-                               zapino(dp);
+                               clearinode(dp);
                                inodirty();
                        }
                }
                                inodirty();
                        }
                }
@@ -159,8 +161,8 @@ pass1check(idesc)
        register struct dups *dlp;
        struct dups *new;
 
        register struct dups *dlp;
        struct dups *new;
 
-       if ((anyout = outrange(blkno, idesc->id_numfrags)) != 0) {
-               blkerr(idesc->id_number, "BAD", blkno);
+       if ((anyout = chkrange(blkno, idesc->id_numfrags)) != 0) {
+               blkerror(idesc->id_number, "BAD", blkno);
                if (++badblk >= MAXBAD) {
                        pwarn("EXCESSIVE BAD BLKS I=%u",
                                idesc->id_number);
                if (++badblk >= MAXBAD) {
                        pwarn("EXCESSIVE BAD BLKS I=%u",
                                idesc->id_number);
@@ -172,13 +174,13 @@ pass1check(idesc)
                }
        }
        for (nfrags = idesc->id_numfrags; nfrags > 0; blkno++, nfrags--) {
                }
        }
        for (nfrags = idesc->id_numfrags; nfrags > 0; blkno++, nfrags--) {
-               if (anyout && outrange(blkno, 1)) {
+               if (anyout && chkrange(blkno, 1)) {
                        res = SKIP;
                        res = SKIP;
-               } else if (!getbmap(blkno)) {
+               } else if (!testbmap(blkno)) {
                        n_blks++;
                        setbmap(blkno);
                } else {
                        n_blks++;
                        setbmap(blkno);
                } else {
-                       blkerr(idesc->id_number, "DUP", blkno);
+                       blkerror(idesc->id_number, "DUP", blkno);
                        if (++dupblk >= MAXDUP) {
                                pwarn("EXCESSIVE DUP BLKS I=%u",
                                        idesc->id_number);
                        if (++dupblk >= MAXDUP) {
                                pwarn("EXCESSIVE DUP BLKS I=%u",
                                        idesc->id_number);
index b714182..04e2a2e 100644 (file)
@@ -5,7 +5,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)pass1b.c   5.4 (Berkeley) %G%";
+static char sccsid[] = "@(#)pass1b.c   5.5 (Berkeley) %G%";
 #endif not lint
 
 #include <sys/param.h>
 #endif not lint
 
 #include <sys/param.h>
@@ -19,7 +19,7 @@ static  struct dups *duphead;
 pass1b()
 {
        register int c, i;
 pass1b()
 {
        register int c, i;
-       register DINODE *dp;
+       register struct dinode *dp;
        struct inodesc idesc;
        ino_t inumber;
 
        struct inodesc idesc;
        ino_t inumber;
 
@@ -38,10 +38,9 @@ pass1b()
                        idesc.id_number = inumber;
                        if (statemap[inumber] != USTATE &&
                            (ckinode(dp, &idesc) & STOP))
                        idesc.id_number = inumber;
                        if (statemap[inumber] != USTATE &&
                            (ckinode(dp, &idesc) & STOP))
-                               goto out1b;
+                               return;
                }
        }
                }
        }
-out1b:;
 }
 
 pass1bcheck(idesc)
 }
 
 pass1bcheck(idesc)
@@ -52,11 +51,11 @@ pass1bcheck(idesc)
        daddr_t blkno = idesc->id_blkno;
 
        for (nfrags = idesc->id_numfrags; nfrags > 0; blkno++, nfrags--) {
        daddr_t blkno = idesc->id_blkno;
 
        for (nfrags = idesc->id_numfrags; nfrags > 0; blkno++, nfrags--) {
-               if (outrange(blkno, 1))
+               if (chkrange(blkno, 1))
                        res = SKIP;
                for (dlp = duphead; dlp; dlp = dlp->next) {
                        if (dlp->dup == blkno) {
                        res = SKIP;
                for (dlp = duphead; dlp; dlp = dlp->next) {
                        if (dlp->dup == blkno) {
-                               blkerr(idesc->id_number, "DUP", blkno);
+                               blkerror(idesc->id_number, "DUP", blkno);
                                dlp->dup = duphead->dup;
                                duphead->dup = blkno;
                                duphead = duphead->next;
                                dlp->dup = duphead->dup;
                                duphead->dup = blkno;
                                duphead = duphead->next;
index 0bd6bb1..de61ab2 100644 (file)
@@ -5,7 +5,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)pass2.c    5.6 (Berkeley) %G%";
+static char sccsid[] = "@(#)pass2.c    5.7 (Berkeley) %G%";
 #endif not lint
 
 #include <sys/param.h>
 #endif not lint
 
 #include <sys/param.h>
@@ -19,7 +19,7 @@ int   pass2check();
 
 pass2()
 {
 
 pass2()
 {
-       register DINODE *dp;
+       register struct dinode *dp;
        struct inodesc rootdesc;
 
        bzero((char *)&rootdesc, sizeof(struct inodesc));
        struct inodesc rootdesc;
 
        bzero((char *)&rootdesc, sizeof(struct inodesc));
@@ -84,11 +84,11 @@ pass2()
 pass2check(idesc)
        struct inodesc *idesc;
 {
 pass2check(idesc)
        struct inodesc *idesc;
 {
-       register DIRECT *dirp = idesc->id_dirp;
+       register struct direct *dirp = idesc->id_dirp;
        char *curpathloc;
        int n, entrysize, ret = 0;
        char *curpathloc;
        int n, entrysize, ret = 0;
-       DINODE *dp;
-       DIRECT proto;
+       struct dinode *dp;
+       struct direct proto;
        char namebuf[BUFSIZ];
 
        /* 
        char namebuf[BUFSIZ];
 
        /* 
@@ -98,14 +98,14 @@ pass2check(idesc)
                goto chk1;
        if (dirp->d_ino != 0 && strcmp(dirp->d_name, ".") == 0) {
                if (dirp->d_ino != idesc->id_number) {
                goto chk1;
        if (dirp->d_ino != 0 && strcmp(dirp->d_name, ".") == 0) {
                if (dirp->d_ino != idesc->id_number) {
-                       direrr(idesc->id_number, "BAD INODE NUMBER FOR '.'");
+                       direrror(idesc->id_number, "BAD INODE NUMBER FOR '.'");
                        dirp->d_ino = idesc->id_number;
                        if (reply("FIX") == 1)
                                ret |= ALTERED;
                }
                goto chk1;
        }
                        dirp->d_ino = idesc->id_number;
                        if (reply("FIX") == 1)
                                ret |= ALTERED;
                }
                goto chk1;
        }
-       direrr(idesc->id_number, "MISSING '.'");
+       direrror(idesc->id_number, "MISSING '.'");
        proto.d_ino = idesc->id_number;
        proto.d_namlen = 1;
        (void)strcpy(proto.d_name, ".");
        proto.d_ino = idesc->id_number;
        proto.d_namlen = 1;
        (void)strcpy(proto.d_name, ".");
@@ -126,7 +126,7 @@ pass2check(idesc)
                bcopy((char *)&proto, (char *)dirp, entrysize);
                idesc->id_entryno++;
                lncntp[dirp->d_ino]--;
                bcopy((char *)&proto, (char *)dirp, entrysize);
                idesc->id_entryno++;
                lncntp[dirp->d_ino]--;
-               dirp = (DIRECT *)((char *)(dirp) + entrysize);
+               dirp = (struct direct *)((char *)(dirp) + entrysize);
                bzero((char *)dirp, n);
                dirp->d_reclen = n;
                if (reply("FIX") == 1)
                bzero((char *)dirp, n);
                dirp->d_reclen = n;
                if (reply("FIX") == 1)
@@ -147,20 +147,20 @@ chk1:
                dirp->d_reclen = n;
                idesc->id_entryno++;
                lncntp[dirp->d_ino]--;
                dirp->d_reclen = n;
                idesc->id_entryno++;
                lncntp[dirp->d_ino]--;
-               dirp = (DIRECT *)((char *)(dirp) + n);
+               dirp = (struct direct *)((char *)(dirp) + n);
                bzero((char *)dirp, n);
                dirp->d_reclen = n;
        }
        if (dirp->d_ino != 0 && strcmp(dirp->d_name, "..") == 0) {
                if (dirp->d_ino != idesc->id_parent) {
                bzero((char *)dirp, n);
                dirp->d_reclen = n;
        }
        if (dirp->d_ino != 0 && strcmp(dirp->d_name, "..") == 0) {
                if (dirp->d_ino != idesc->id_parent) {
-                       direrr(idesc->id_number, "BAD INODE NUMBER FOR '..'");
+                       direrror(idesc->id_number, "BAD INODE NUMBER FOR '..'");
                        dirp->d_ino = idesc->id_parent;
                        if (reply("FIX") == 1)
                                ret |= ALTERED;
                }
                goto chk2;
        }
                        dirp->d_ino = idesc->id_parent;
                        if (reply("FIX") == 1)
                                ret |= ALTERED;
                }
                goto chk2;
        }
-       direrr(idesc->id_number, "MISSING '..'");
+       direrror(idesc->id_number, "MISSING '..'");
        if (dirp->d_ino != 0 && strcmp(dirp->d_name, ".") != 0) {
                pfatal("CANNOT FIX, SECOND ENTRY IN DIRECTORY CONTAINS %s\n",
                        dirp->d_name);
        if (dirp->d_ino != 0 && strcmp(dirp->d_name, ".") != 0) {
                pfatal("CANNOT FIX, SECOND ENTRY IN DIRECTORY CONTAINS %s\n",
                        dirp->d_name);
@@ -179,14 +179,14 @@ chk2:
            dirp->d_name[0] == '.' &&
            idesc->id_entryno >= 2) {
                if (dirp->d_namlen == 1) {
            dirp->d_name[0] == '.' &&
            idesc->id_entryno >= 2) {
                if (dirp->d_namlen == 1) {
-                       direrr(idesc->id_number, "EXTRA '.' ENTRY");
+                       direrror(idesc->id_number, "EXTRA '.' ENTRY");
                        dirp->d_ino = 0;
                        if (reply("FIX") == 1)
                                ret |= ALTERED;
                        return (KEEPON | ret);
                }
                if (dirp->d_name[1] == '.') {
                        dirp->d_ino = 0;
                        if (reply("FIX") == 1)
                                ret |= ALTERED;
                        return (KEEPON | ret);
                }
                if (dirp->d_name[1] == '.') {
-                       direrr(idesc->id_number, "EXTRA '..' ENTRY");
+                       direrror(idesc->id_number, "EXTRA '..' ENTRY");
                        dirp->d_ino = 0;
                        if (reply("FIX") == 1)
                                ret |= ALTERED;
                        dirp->d_ino = 0;
                        if (reply("FIX") == 1)
                                ret |= ALTERED;
@@ -199,28 +199,29 @@ chk2:
                *pathp = '\0';
                errexit("NAME TOO LONG %s%s\n", pathname, dirp->d_name);
        }
                *pathp = '\0';
                errexit("NAME TOO LONG %s%s\n", pathname, dirp->d_name);
        }
-       bcopy(dirp->d_name, pathp, dirp->d_namlen + 1);
+       bcopy(dirp->d_name, pathp, (int)dirp->d_namlen + 1);
        pathp += dirp->d_namlen;
        idesc->id_entryno++;
        n = 0;
        pathp += dirp->d_namlen;
        idesc->id_entryno++;
        n = 0;
-       if (dirp->d_ino > imax || dirp->d_ino <= 0) {
-               direrr(dirp->d_ino, "I OUT OF RANGE");
+       if (dirp->d_ino > maxino || dirp->d_ino <= 0) {
+               direrror(dirp->d_ino, "I OUT OF RANGE");
                n = reply("REMOVE");
        } else {
 again:
                switch (statemap[dirp->d_ino]) {
                case USTATE:
                n = reply("REMOVE");
        } else {
 again:
                switch (statemap[dirp->d_ino]) {
                case USTATE:
-                       direrr(dirp->d_ino, "UNALLOCATED");
+                       direrror(dirp->d_ino, "UNALLOCATED");
                        n = reply("REMOVE");
                        break;
 
                case DCLEAR:
                case FCLEAR:
                        n = reply("REMOVE");
                        break;
 
                case DCLEAR:
                case FCLEAR:
-                       direrr(dirp->d_ino, "DUP/BAD");
+                       direrror(dirp->d_ino, "DUP/BAD");
                        if ((n = reply("REMOVE")) == 1)
                                break;
                        dp = ginode(dirp->d_ino);
                        if ((n = reply("REMOVE")) == 1)
                                break;
                        dp = ginode(dirp->d_ino);
-                       statemap[dirp->d_ino] = DIRCT(dp) ? DSTATE : FSTATE;
+                       statemap[dirp->d_ino] =
+                           (dp->di_mode & IFMT) == IFDIR ? DSTATE : FSTATE;
                        lncntp[dirp->d_ino] = dp->di_nlink;
                        goto again;
 
                        lncntp[dirp->d_ino] = dp->di_nlink;
                        goto again;
 
index ee698e3..394165d 100644 (file)
@@ -5,7 +5,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)pass3.c    5.4 (Berkeley) %G%";
+static char sccsid[] = "@(#)pass3.c    5.5 (Berkeley) %G%";
 #endif not lint
 
 #include <sys/param.h>
 #endif not lint
 
 #include <sys/param.h>
@@ -17,7 +17,7 @@ int   pass2check();
 
 pass3()
 {
 
 pass3()
 {
-       register DINODE *dp;
+       register struct dinode *dp;
        struct inodesc idesc;
        ino_t inumber, orphan;
        int loopcnt;
        struct inodesc idesc;
        ino_t inumber, orphan;
        int loopcnt;
@@ -35,7 +35,7 @@ pass3()
                        loopcnt = 0;
                        do {
                                orphan = idesc.id_parent;
                        loopcnt = 0;
                        do {
                                orphan = idesc.id_parent;
-                               if (orphan < ROOTINO || orphan > imax)
+                               if (orphan < ROOTINO || orphan > maxino)
                                        break;
                                dp = ginode(orphan);
                                idesc.id_parent = 0;
                                        break;
                                dp = ginode(orphan);
                                idesc.id_parent = 0;
index 37b4dc7..edc58de 100644 (file)
@@ -5,7 +5,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)pass4.c    5.5 (Berkeley) %G%";
+static char sccsid[] = "@(#)pass4.c    5.6 (Berkeley) %G%";
 #endif not lint
 
 #include <sys/param.h>
 #endif not lint
 
 #include <sys/param.h>
@@ -40,7 +40,7 @@ pass4()
                                                zlnp->zlncnt = zlnhead->zlncnt;
                                                zlnp = zlnhead;
                                                zlnhead = zlnhead->next;
                                                zlnp->zlncnt = zlnhead->zlncnt;
                                                zlnp = zlnhead;
                                                zlnhead = zlnhead->next;
-                                               free(zlnp);
+                                               free((char *)zlnp);
                                                clri(&idesc, "UNREF", 1);
                                                break;
                                        }
                                                clri(&idesc, "UNREF", 1);
                                                break;
                                        }
@@ -74,16 +74,16 @@ pass4check(idesc)
        daddr_t blkno = idesc->id_blkno;
 
        for (nfrags = idesc->id_numfrags; nfrags > 0; blkno++, nfrags--) {
        daddr_t blkno = idesc->id_blkno;
 
        for (nfrags = idesc->id_numfrags; nfrags > 0; blkno++, nfrags--) {
-               if (outrange(blkno, 1)) {
+               if (chkrange(blkno, 1)) {
                        res = SKIP;
                        res = SKIP;
-               } else if (getbmap(blkno)) {
+               } else if (testbmap(blkno)) {
                        for (dlp = duplist; dlp; dlp = dlp->next) {
                                if (dlp->dup != blkno)
                                        continue;
                                dlp->dup = duplist->dup;
                                dlp = duplist;
                                duplist = duplist->next;
                        for (dlp = duplist; dlp; dlp = dlp->next) {
                                if (dlp->dup != blkno)
                                        continue;
                                dlp->dup = duplist->dup;
                                dlp = duplist;
                                duplist = duplist->next;
-                               free(dlp);
+                               free((char *)dlp);
                                break;
                        }
                        if (dlp == 0) {
                                break;
                        }
                        if (dlp == 0) {
index 07c5da7..933ed33 100644 (file)
@@ -5,7 +5,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)pass5.c    5.8 (Berkeley) %G%";
+static char sccsid[] = "@(#)pass5.c    5.9 (Berkeley) %G%";
 #endif not lint
 
 #include <sys/param.h>
 #endif not lint
 
 #include <sys/param.h>
@@ -29,9 +29,9 @@ pass5()
        register struct cg *newcg = (struct cg *)buf;
        struct ocg *ocg = (struct ocg *)buf;
 
        register struct cg *newcg = (struct cg *)buf;
        struct ocg *ocg = (struct ocg *)buf;
 
-       bzero((char *)newcg, fs->fs_cgsize);
+       bzero((char *)newcg, (int)fs->fs_cgsize);
        newcg->cg_niblk = fs->fs_ipg;
        newcg->cg_niblk = fs->fs_ipg;
-       switch (fs->fs_postblformat) {
+       switch ((int)fs->fs_postblformat) {
 
        case FS_42POSTBLFMT:
                basesize = (char *)(&ocg->cg_btot[0]) - (char *)(&ocg->cg_link);
 
        case FS_42POSTBLFMT:
                basesize = (char *)(&ocg->cg_btot[0]) - (char *)(&ocg->cg_link);
@@ -146,7 +146,7 @@ pass5()
                     d += fs->fs_frag, i += fs->fs_frag) {
                        frags = 0;
                        for (j = 0; j < fs->fs_frag; j++) {
                     d += fs->fs_frag, i += fs->fs_frag) {
                        frags = 0;
                        for (j = 0; j < fs->fs_frag; j++) {
-                               if (getbmap(d + j))
+                               if (testbmap(d + j))
                                        continue;
                                setbit(cg_blksfree(newcg), i + j);
                                frags++;
                                        continue;
                                setbit(cg_blksfree(newcg), i + j);
                                frags++;
@@ -173,7 +173,7 @@ pass5()
                        sbdirty();
                }
                if (cvtflag) {
                        sbdirty();
                }
                if (cvtflag) {
-                       bcopy((char *)newcg, (char *)cg, fs->fs_cgsize);
+                       bcopy((char *)newcg, (char *)cg, (int)fs->fs_cgsize);
                        cgdirty();
                        continue;
                }
                        cgdirty();
                        continue;
                }
index 153664d..484461a 100644 (file)
@@ -5,7 +5,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)setup.c    5.23 (Berkeley) %G%";
+static char sccsid[] = "@(#)setup.c    5.24 (Berkeley) %G%";
 #endif not lint
 
 #define DKTYPENAMES
 #endif not lint
 
 #define DKTYPENAMES
@@ -20,7 +20,7 @@ static char sccsid[] = "@(#)setup.c   5.23 (Berkeley) %G%";
 #include <ctype.h>
 #include "fsck.h"
 
 #include <ctype.h>
 #include "fsck.h"
 
-BUFAREA asblk;
+struct bufarea asblk;
 #define altsblock (*asblk.b_un.b_fs)
 #define POWEROF2(num)  (((num) & ((num) - 1)) == 0)
 
 #define altsblock (*asblk.b_un.b_fs)
 #define POWEROF2(num)  (((num) & ((num) - 1)) == 0)
 
@@ -45,7 +45,8 @@ setup(dev)
        char *dev;
 {
        dev_t rootdev;
        char *dev;
 {
        dev_t rootdev;
-       long cg, ncg, size, asked, i, j;
+       long cg, size, asked, i, j;
+       long bmapsize;
        struct disklabel *lp;
        struct stat statb;
        struct fs proto;
        struct disklabel *lp;
        struct stat statb;
        struct fs proto;
@@ -59,33 +60,28 @@ setup(dev)
                printf("Can't stat %s\n", dev);
                return (0);
        }
                printf("Can't stat %s\n", dev);
                return (0);
        }
-       rawflg = 0;
-       if ((statb.st_mode & S_IFMT) == S_IFBLK)
-               ;
-       else if ((statb.st_mode & S_IFMT) == S_IFCHR)
-               rawflg++;
-       else {
-               if (reply("file is not a block or character device; OK") == 0)
-                       return (0);
-       }
+       if ((statb.st_mode & S_IFMT) != S_IFBLK &&
+           (statb.st_mode & S_IFMT) != S_IFCHR &&
+           reply("file is not a block or character device; OK") == 0)
+               return (0);
        if (rootdev == statb.st_rdev)
                hotroot++;
        if (rootdev == statb.st_rdev)
                hotroot++;
-       if ((dfile.rfdes = open(dev, O_RDONLY)) < 0) {
+       if ((fsreadfd = open(dev, O_RDONLY)) < 0) {
                perror(dev);
                printf("Can't open %s\n", dev);
                return (0);
        }
        if (preen == 0)
                printf("** %s", dev);
                perror(dev);
                printf("Can't open %s\n", dev);
                return (0);
        }
        if (preen == 0)
                printf("** %s", dev);
-       if (nflag || (dfile.wfdes = open(dev, O_WRONLY)) < 0) {
-               dfile.wfdes = -1;
+       if (nflag || (fswritefd = open(dev, O_WRONLY)) < 0) {
+               fswritefd = -1;
                if (preen)
                        pfatal("NO WRITE ACCESS");
                printf(" (NO WRITE)");
        }
        if (preen == 0)
                printf("\n");
                if (preen)
                        pfatal("NO WRITE ACCESS");
                printf(" (NO WRITE)");
        }
        if (preen == 0)
                printf("\n");
-       dfile.mod = 0;
+       fsmodified = 0;
        lfdir = 0;
        initbarea(&sblk);
        initbarea(&asblk);
        lfdir = 0;
        initbarea(&sblk);
        initbarea(&asblk);
@@ -93,7 +89,7 @@ setup(dev)
        asblk.b_un.b_buf = malloc(SBSIZE);
        if (sblk.b_un.b_buf == NULL || asblk.b_un.b_buf == NULL)
                errexit("cannot allocate space for superblock\n");
        asblk.b_un.b_buf = malloc(SBSIZE);
        if (sblk.b_un.b_buf == NULL || asblk.b_un.b_buf == NULL)
                errexit("cannot allocate space for superblock\n");
-       if (lp = getdisklabel((char *)NULL, dfile.rfdes))
+       if (lp = getdisklabel((char *)NULL, fsreadfd))
                dev_bsize = secsize = lp->d_secsize;
        else
                dev_bsize = secsize = DEV_BSIZE;
                dev_bsize = secsize = lp->d_secsize;
        else
                dev_bsize = secsize = DEV_BSIZE;
@@ -101,7 +97,7 @@ setup(dev)
         * Read in the superblock, looking for alternates if necessary
         */
        if (readsb(1) == 0) {
         * Read in the superblock, looking for alternates if necessary
         */
        if (readsb(1) == 0) {
-               if (bflag || preen || calcsb(dev, dfile.rfdes, &proto) == 0)
+               if (bflag || preen || calcsb(dev, fsreadfd, &proto) == 0)
                        return(0);
                if (reply("LOOK FOR ALTERNATE SUPERBLOCKS") == 0)
                        return (0);
                        return(0);
                if (reply("LOOK FOR ALTERNATE SUPERBLOCKS") == 0)
                        return (0);
@@ -122,8 +118,8 @@ setup(dev)
                }
                pwarn("USING ALTERNATE SUPERBLOCK AT %d\n", bflag);
        }
                }
                pwarn("USING ALTERNATE SUPERBLOCK AT %d\n", bflag);
        }
-       fmax = sblock.fs_size;
-       imax = sblock.fs_ncg * sblock.fs_ipg;
+       maxfsblock = sblock.fs_size;
+       maxino = sblock.fs_ncg * sblock.fs_ipg;
        /*
         * Check and potentially fix certain fields in the super block.
         */
        /*
         * Check and potentially fix certain fields in the super block.
         */
@@ -216,8 +212,9 @@ setup(dev)
                }
        }
        if (asblk.b_dirty) {
                }
        }
        if (asblk.b_dirty) {
-               bcopy((char *)&sblock, (char *)&altsblock, sblock.fs_sbsize);
-               flush(&dfile, &asblk);
+               bcopy((char *)&sblock, (char *)&altsblock,
+                       (int)sblock.fs_sbsize);
+               flush(fswritefd, &asblk);
        }
        /*
         * read in the summary info.
        }
        /*
         * read in the summary info.
@@ -227,7 +224,7 @@ setup(dev)
                size = sblock.fs_cssize - i < sblock.fs_bsize ?
                    sblock.fs_cssize - i : sblock.fs_bsize;
                sblock.fs_csp[j] = (struct csum *)calloc(1, (unsigned)size);
                size = sblock.fs_cssize - i < sblock.fs_bsize ?
                    sblock.fs_cssize - i : sblock.fs_bsize;
                sblock.fs_csp[j] = (struct csum *)calloc(1, (unsigned)size);
-               if (bread(&dfile, (char *)sblock.fs_csp[j],
+               if (bread(fsreadfd, (char *)sblock.fs_csp[j],
                    fsbtodb(&sblock, sblock.fs_csaddr + j * sblock.fs_frag),
                    size) != 0 && !asked) {
                        pfatal("BAD SUMMARY INFORMATION");
                    fsbtodb(&sblock, sblock.fs_csaddr + j * sblock.fs_frag),
                    size) != 0 && !asked) {
                        pfatal("BAD SUMMARY INFORMATION");
@@ -239,21 +236,21 @@ setup(dev)
        /*
         * allocate and initialize the necessary maps
         */
        /*
         * allocate and initialize the necessary maps
         */
-       bmapsz = roundup(howmany(fmax, NBBY), sizeof(short));
-       blockmap = calloc((unsigned)bmapsz, sizeof (char));
+       bmapsize = roundup(howmany(maxfsblock, NBBY), sizeof(short));
+       blockmap = calloc((unsigned)bmapsize, sizeof (char));
        if (blockmap == NULL) {
        if (blockmap == NULL) {
-               printf("cannot alloc %d bytes for blockmap\n", bmapsz);
+               printf("cannot alloc %d bytes for blockmap\n", bmapsize);
                goto badsb;
        }
                goto badsb;
        }
-       statemap = calloc((unsigned)(imax + 1), sizeof(char));
+       statemap = calloc((unsigned)(maxino + 1), sizeof(char));
        if (statemap == NULL) {
        if (statemap == NULL) {
-               printf("cannot alloc %d bytes for statemap\n", imax + 1);
+               printf("cannot alloc %d bytes for statemap\n", maxino + 1);
                goto badsb;
        }
                goto badsb;
        }
-       lncntp = (short *)calloc((unsigned)(imax + 1), sizeof(short));
+       lncntp = (short *)calloc((unsigned)(maxino + 1), sizeof(short));
        if (lncntp == NULL) {
                printf("cannot alloc %d bytes for lncntp\n", 
        if (lncntp == NULL) {
                printf("cannot alloc %d bytes for lncntp\n", 
-                   (imax + 1) * sizeof(short));
+                   (maxino + 1) * sizeof(short));
                goto badsb;
        }
 
                goto badsb;
        }
 
@@ -271,10 +268,9 @@ badsb:
 readsb(listerr)
        int listerr;
 {
 readsb(listerr)
        int listerr;
 {
-       off_t sboff;
        daddr_t super = bflag ? bflag : SBOFF / dev_bsize;
 
        daddr_t super = bflag ? bflag : SBOFF / dev_bsize;
 
-       if (bread(&dfile, (char *)&sblock, super, (long)SBSIZE) != 0)
+       if (bread(fsreadfd, (char *)&sblock, super, (long)SBSIZE) != 0)
                return (0);
        sblk.b_bno = super;
        sblk.b_size = SBSIZE;
                return (0);
        sblk.b_bno = super;
        sblk.b_size = SBSIZE;
@@ -392,7 +388,7 @@ calcsb(dev, devfd, fs)
                        fstypenames[pp->p_fstype] : "unknown");
                return (0);
        }
                        fstypenames[pp->p_fstype] : "unknown");
                return (0);
        }
-       bzero(fs, sizeof(struct fs));
+       bzero((char *)fs, sizeof(struct fs));
        fs->fs_fsize = pp->p_fsize;
        fs->fs_frag = pp->p_frag;
        fs->fs_cpg = pp->p_cpg;
        fs->fs_fsize = pp->p_fsize;
        fs->fs_frag = pp->p_frag;
        fs->fs_cpg = pp->p_cpg;
index ba048bf..d019d12 100644 (file)
@@ -5,7 +5,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)utilities.c        5.18 (Berkeley) %G%";
+static char sccsid[] = "@(#)utilities.c        5.19 (Berkeley) %G%";
 #endif not lint
 
 #include <sys/param.h>
 #endif not lint
 
 #include <sys/param.h>
@@ -21,7 +21,7 @@ long  lseek();
 char   *malloc();
 
 ftypeok(dp)
 char   *malloc();
 
 ftypeok(dp)
-       DINODE *dp;
+       struct dinode *dp;
 {
        switch (dp->di_mode & IFMT) {
 
 {
        switch (dp->di_mode & IFMT) {
 
@@ -40,16 +40,16 @@ ftypeok(dp)
        }
 }
 
        }
 }
 
-reply(s)
-       char *s;
+reply(mesg)
+       char *mesg;
 {
        char line[80];
 {
        char line[80];
-       int cont = (strcmp(s, "CONTINUE") == 0);
+       int cont = (strcmp(mesg, "CONTINUE") == 0);
 
        if (preen)
                pfatal("INTERNAL ERROR: GOT TO reply()");
 
        if (preen)
                pfatal("INTERNAL ERROR: GOT TO reply()");
-       printf("\n%s? ", s);
-       if (!cont && (nflag || dfile.wfdes < 0)) {
+       printf("\n%s? ", mesg);
+       if (!cont && (nflag || fswritefd < 0)) {
                printf(" no\n\n");
                return (0);
        }
                printf(" no\n\n");
                return (0);
        }
@@ -69,8 +69,9 @@ reply(s)
 getline(fp, loc, maxlen)
        FILE *fp;
        char *loc;
 getline(fp, loc, maxlen)
        FILE *fp;
        char *loc;
+       int maxlen;
 {
 {
-       register n;
+       register long n;
        register char *p, *lastloc;
 
        p = loc;
        register char *p, *lastloc;
 
        p = loc;
@@ -90,11 +91,11 @@ getline(fp, loc, maxlen)
  */
 bufinit()
 {
  */
 bufinit()
 {
-       register BUFAREA *bp;
+       register struct bufarea *bp;
        long bufcnt, i;
        char *bufp;
 
        long bufcnt, i;
        char *bufp;
 
-       bufp = malloc(sblock.fs_bsize);
+       bufp = malloc((unsigned int)sblock.fs_bsize);
        if (bufp == 0)
                errexit("cannot allocate buffer pool\n");
        cgblk.b_un.b_buf = bufp;
        if (bufp == 0)
                errexit("cannot allocate buffer pool\n");
        cgblk.b_un.b_buf = bufp;
@@ -104,8 +105,8 @@ bufinit()
        if (bufcnt < MINBUFS)
                bufcnt = MINBUFS;
        for (i = 0; i < bufcnt; i++) {
        if (bufcnt < MINBUFS)
                bufcnt = MINBUFS;
        for (i = 0; i < bufcnt; i++) {
-               bp = (BUFAREA *)malloc(sizeof(BUFAREA));
-               bufp = malloc(sblock.fs_bsize);
+               bp = (struct bufarea *)malloc(sizeof(struct bufarea));
+               bufp = malloc((unsigned int)sblock.fs_bsize);
                if (bp == NULL || bufp == NULL) {
                        if (i >= MINBUFS)
                                break;
                if (bp == NULL || bufp == NULL) {
                        if (i >= MINBUFS)
                                break;
@@ -124,12 +125,12 @@ bufinit()
 /*
  * Manage a cache of directory blocks.
  */
 /*
  * Manage a cache of directory blocks.
  */
-BUFAREA *
+struct bufarea *
 getdatablk(blkno, size)
        daddr_t blkno;
        long size;
 {
 getdatablk(blkno, size)
        daddr_t blkno;
        long size;
 {
-       register BUFAREA *bp;
+       register struct bufarea *bp;
 
        for (bp = bufhead.b_next; bp != &bufhead; bp = bp->b_next)
                if (bp->b_bno == fsbtodb(&sblock, blkno))
 
        for (bp = bufhead.b_next; bp != &bufhead; bp = bp->b_next)
                if (bp->b_bno == fsbtodb(&sblock, blkno))
@@ -153,30 +154,28 @@ foundit:
        return (bp);
 }
 
        return (bp);
 }
 
-BUFAREA *
+struct bufarea *
 getblk(bp, blk, size)
 getblk(bp, blk, size)
-       register BUFAREA *bp;
+       register struct bufarea *bp;
        daddr_t blk;
        long size;
 {
        daddr_t blk;
        long size;
 {
-       register struct filecntl *fcp;
        daddr_t dblk;
 
        daddr_t dblk;
 
-       fcp = &dfile;
        dblk = fsbtodb(&sblock, blk);
        if (bp->b_bno == dblk)
                return (bp);
        dblk = fsbtodb(&sblock, blk);
        if (bp->b_bno == dblk)
                return (bp);
-       flush(fcp, bp);
+       flush(fswritefd, bp);
        diskreads++;
        diskreads++;
-       bp->b_errs = bread(fcp, bp->b_un.b_buf, dblk, size);
+       bp->b_errs = bread(fsreadfd, bp->b_un.b_buf, dblk, size);
        bp->b_bno = dblk;
        bp->b_size = size;
        return (bp);
 }
 
        bp->b_bno = dblk;
        bp->b_size = size;
        return (bp);
 }
 
-flush(fcp, bp)
-       struct filecntl *fcp;
-       register BUFAREA *bp;
+flush(fd, bp)
+       int fd;
+       register struct bufarea *bp;
 {
        register int i, j;
 
 {
        register int i, j;
 
@@ -188,46 +187,46 @@ flush(fcp, bp)
                    bp->b_bno);
        bp->b_dirty = 0;
        bp->b_errs = 0;
                    bp->b_bno);
        bp->b_dirty = 0;
        bp->b_errs = 0;
-       bwrite(fcp, bp->b_un.b_buf, bp->b_bno, (long)bp->b_size);
+       bwrite(fd, bp->b_un.b_buf, bp->b_bno, (long)bp->b_size);
        if (bp != &sblk)
                return;
        for (i = 0, j = 0; i < sblock.fs_cssize; i += sblock.fs_bsize, j++) {
        if (bp != &sblk)
                return;
        for (i = 0, j = 0; i < sblock.fs_cssize; i += sblock.fs_bsize, j++) {
-               bwrite(&dfile, (char *)sblock.fs_csp[j],
+               bwrite(fswritefd, (char *)sblock.fs_csp[j],
                    fsbtodb(&sblock, sblock.fs_csaddr + j * sblock.fs_frag),
                    sblock.fs_cssize - i < sblock.fs_bsize ?
                    sblock.fs_cssize - i : sblock.fs_bsize);
        }
 }
 
                    fsbtodb(&sblock, sblock.fs_csaddr + j * sblock.fs_frag),
                    sblock.fs_cssize - i < sblock.fs_bsize ?
                    sblock.fs_cssize - i : sblock.fs_bsize);
        }
 }
 
-rwerr(s, blk)
-       char *s;
+rwerror(mesg, blk)
+       char *mesg;
        daddr_t blk;
 {
 
        if (preen == 0)
                printf("\n");
        daddr_t blk;
 {
 
        if (preen == 0)
                printf("\n");
-       pfatal("CANNOT %s: BLK %ld", s, blk);
+       pfatal("CANNOT %s: BLK %ld", mesg, blk);
        if (reply("CONTINUE") == 0)
                errexit("Program terminated\n");
 }
 
 ckfini()
 {
        if (reply("CONTINUE") == 0)
                errexit("Program terminated\n");
 }
 
 ckfini()
 {
-       register BUFAREA *bp, *nbp;
+       register struct bufarea *bp, *nbp;
        int cnt = 0;
 
        int cnt = 0;
 
-       flush(&dfile, &sblk);
+       flush(fswritefd, &sblk);
        if (havesb && sblk.b_bno != SBOFF / dev_bsize &&
            !preen && reply("UPDATE STANDARD SUPERBLOCK")) {
                sblk.b_bno = SBOFF / dev_bsize;
                sbdirty();
        if (havesb && sblk.b_bno != SBOFF / dev_bsize &&
            !preen && reply("UPDATE STANDARD SUPERBLOCK")) {
                sblk.b_bno = SBOFF / dev_bsize;
                sbdirty();
-               flush(&dfile, &sblk);
+               flush(fswritefd, &sblk);
        }
        }
-       flush(&dfile, &cgblk);
+       flush(fswritefd, &cgblk);
        free(cgblk.b_un.b_buf);
        for (bp = bufhead.b_prev; bp != &bufhead; bp = nbp) {
                cnt++;
        free(cgblk.b_un.b_buf);
        for (bp = bufhead.b_prev; bp != &bufhead; bp = nbp) {
                cnt++;
-               flush(&dfile, bp);
+               flush(fswritefd, bp);
                nbp = bp->b_prev;
                free(bp->b_un.b_buf);
                free((char *)bp);
                nbp = bp->b_prev;
                free(bp->b_un.b_buf);
                free((char *)bp);
@@ -237,12 +236,12 @@ ckfini()
        if (debug)
                printf("cache missed %d of %d (%d%%)\n", diskreads,
                    totalreads, diskreads * 100 / totalreads);
        if (debug)
                printf("cache missed %d of %d (%d%%)\n", diskreads,
                    totalreads, diskreads * 100 / totalreads);
-       (void)close(dfile.rfdes);
-       (void)close(dfile.wfdes);
+       (void)close(fsreadfd);
+       (void)close(fswritefd);
 }
 
 }
 
-bread(fcp, buf, blk, size)
-       register struct filecntl *fcp;
+bread(fd, buf, blk, size)
+       int fd;
        char *buf;
        daddr_t blk;
        long size;
        char *buf;
        daddr_t blk;
        long size;
@@ -250,19 +249,19 @@ bread(fcp, buf, blk, size)
        char *cp;
        int i, errs;
 
        char *cp;
        int i, errs;
 
-       if (lseek(fcp->rfdes, blk * dev_bsize, 0) < 0)
-               rwerr("SEEK", blk);
-       else if (read(fcp->rfdes, buf, (int)size) == size)
+       if (lseek(fd, blk * dev_bsize, 0) < 0)
+               rwerror("SEEK", blk);
+       else if (read(fd, buf, (int)size) == size)
                return (0);
                return (0);
-       rwerr("READ", blk);
-       if (lseek(fcp->rfdes, blk * dev_bsize, 0) < 0)
-               rwerr("SEEK", blk);
+       rwerror("READ", blk);
+       if (lseek(fd, blk * dev_bsize, 0) < 0)
+               rwerror("SEEK", blk);
        errs = 0;
        errs = 0;
-       bzero(buf, size);
+       bzero(buf, (int)size);
        printf("THE FOLLOWING DISK SECTORS COULD NOT BE READ:");
        for (cp = buf, i = 0; i < size; i += secsize, cp += secsize) {
        printf("THE FOLLOWING DISK SECTORS COULD NOT BE READ:");
        for (cp = buf, i = 0; i < size; i += secsize, cp += secsize) {
-               if (read(fcp->rfdes, cp, secsize) < 0) {
-                       lseek(fcp->rfdes, blk * dev_bsize + i + secsize, 0);
+               if (read(fd, cp, (int)secsize) < 0) {
+                       lseek(fd, blk * dev_bsize + i + secsize, 0);
                        if (secsize != dev_bsize && dev_bsize != 1)
                                printf(" %d (%d),",
                                    (blk * dev_bsize + i) / secsize,
                        if (secsize != dev_bsize && dev_bsize != 1)
                                printf(" %d (%d),",
                                    (blk * dev_bsize + i) / secsize,
@@ -276,8 +275,8 @@ bread(fcp, buf, blk, size)
        return (errs);
 }
 
        return (errs);
 }
 
-bwrite(fcp, buf, blk, size)
-       register struct filecntl *fcp;
+bwrite(fd, buf, blk, size)
+       int fd;
        char *buf;
        daddr_t blk;
        long size;
        char *buf;
        daddr_t blk;
        long size;
@@ -285,21 +284,21 @@ bwrite(fcp, buf, blk, size)
        int i;
        char *cp;
 
        int i;
        char *cp;
 
-       if (fcp->wfdes < 0)
+       if (fd < 0)
                return;
                return;
-       if (lseek(fcp->wfdes, blk * dev_bsize, 0) < 0)
-               rwerr("SEEK", blk);
-       else if (write(fcp->wfdes, buf, (int)size) == size) {
-               fcp->mod = 1;
+       if (lseek(fd, blk * dev_bsize, 0) < 0)
+               rwerror("SEEK", blk);
+       else if (write(fd, buf, (int)size) == size) {
+               fsmodified = 1;
                return;
        }
                return;
        }
-       rwerr("WRITE", blk);
-       if (lseek(fcp->wfdes, blk * dev_bsize, 0) < 0)
-               rwerr("SEEK", blk);
+       rwerror("WRITE", blk);
+       if (lseek(fd, blk * dev_bsize, 0) < 0)
+               rwerror("SEEK", blk);
        printf("THE FOLLOWING SECTORS COULD NOT BE WRITTEN:");
        for (cp = buf, i = 0; i < size; i += dev_bsize, cp += dev_bsize)
        printf("THE FOLLOWING SECTORS COULD NOT BE WRITTEN:");
        for (cp = buf, i = 0; i < size; i += dev_bsize, cp += dev_bsize)
-               if (write(fcp->wfdes, cp, dev_bsize) < 0) {
-                       lseek(fcp->rfdes, blk * dev_bsize + i + dev_bsize, 0);
+               if (write(fd, cp, (int)dev_bsize) < 0) {
+                       lseek(fd, blk * dev_bsize + i + dev_bsize, 0);
                        printf(" %d,", blk + i / dev_bsize);
                }
        printf("\n");
                        printf(" %d,", blk + i / dev_bsize);
                }
        printf("\n");
@@ -310,18 +309,18 @@ bwrite(fcp, buf, blk, size)
  * allocate a data block with the specified number of fragments
  */
 allocblk(frags)
  * allocate a data block with the specified number of fragments
  */
 allocblk(frags)
-       int frags;
+       long frags;
 {
        register int i, j, k;
 
        if (frags <= 0 || frags > sblock.fs_frag)
                return (0);
 {
        register int i, j, k;
 
        if (frags <= 0 || frags > sblock.fs_frag)
                return (0);
-       for (i = 0; i < fmax - sblock.fs_frag; i += sblock.fs_frag) {
+       for (i = 0; i < maxfsblock - sblock.fs_frag; i += sblock.fs_frag) {
                for (j = 0; j <= sblock.fs_frag - frags; j++) {
                for (j = 0; j <= sblock.fs_frag - frags; j++) {
-                       if (getbmap(i + j))
+                       if (testbmap(i + j))
                                continue;
                        for (k = 1; k < frags; k++)
                                continue;
                        for (k = 1; k < frags; k++)
-                               if (getbmap(i + j + k))
+                               if (testbmap(i + j + k))
                                        break;
                        if (k < frags) {
                                j += k;
                                        break;
                        if (k < frags) {
                                j += k;
@@ -341,7 +340,7 @@ allocblk(frags)
  */
 freeblk(blkno, frags)
        daddr_t blkno;
  */
 freeblk(blkno, frags)
        daddr_t blkno;
-       int frags;
+       long frags;
 {
        struct inodesc idesc;
 
 {
        struct inodesc idesc;
 
@@ -366,7 +365,7 @@ getpathname(namebuf, curdir, ino)
                strcpy(namebuf, "?");
                return;
        }
                strcpy(namebuf, "?");
                return;
        }
-       bzero(&idesc, sizeof(struct inodesc));
+       bzero((char *)&idesc, sizeof(struct inodesc));
        idesc.id_type = DATA;
        cp = &namebuf[BUFSIZ - 1];
        *cp = '\0';
        idesc.id_type = DATA;
        cp = &namebuf[BUFSIZ - 1];
        *cp = '\0';
@@ -449,7 +448,7 @@ dofix(idesc, msg)
 
        case DONTKNOW:
                if (idesc->id_type == DATA)
 
        case DONTKNOW:
                if (idesc->id_type == DATA)
-                       direrr(idesc->id_number, msg);
+                       direrror(idesc->id_number, msg);
                else
                        pwarn(msg);
                if (preen) {
                else
                        pwarn(msg);
                if (preen) {
@@ -485,8 +484,8 @@ errexit(s1, s2, s3, s4)
 }
 
 /*
 }
 
 /*
- * An inconsistency occured which shouldn't during normal operations.
- * Die if preening, otherwise just printf.
+ * An unexpected inconsistency occured.
+ * Die if preening, otherwise just print message and continue.
  */
 /* VARARGS1 */
 pfatal(s, a1, a2, a3)
  */
 /* VARARGS1 */
 pfatal(s, a1, a2, a3)
@@ -505,7 +504,7 @@ pfatal(s, a1, a2, a3)
 }
 
 /*
 }
 
 /*
- * Pwarn is like printf when not preening,
+ * Pwarn just prints a message when not preening,
  * or a warning (preceded by filename) when preening.
  */
 /* VARARGS1 */
  * or a warning (preceded by filename) when preening.
  */
 /* VARARGS1 */