when debug is set, list remaining duplicate blocks
[unix-history] / usr / src / sbin / fsck / inode.c
index f8bdff9..990259c 100644 (file)
@@ -1,7 +1,8 @@
 #ifndef lint
 #ifndef lint
-static char version[] = "@(#)inode.c   3.9 (Berkeley) %G%";
+static char version[] = "@(#)inode.c   3.11 (Berkeley) %G%";
 #endif
 
 #endif
 
+#include <pwd.h>
 #include <sys/param.h>
 #include <sys/inode.h>
 #include <sys/fs.h>
 #include <sys/param.h>
 #include <sys/inode.h>
 #include <sys/fs.h>
@@ -72,7 +73,8 @@ iblock(idesc, ilevel, isize)
        if (outrange(idesc->id_blkno, idesc->id_numfrags)) /* protect thyself */
                return (SKIP);
        initbarea(&ib);
        if (outrange(idesc->id_blkno, idesc->id_numfrags)) /* protect thyself */
                return (SKIP);
        initbarea(&ib);
-       if (getblk(&ib, idesc->id_blkno, sblock.fs_bsize) == NULL)
+       getblk(&ib, idesc->id_blkno, sblock.fs_bsize);
+       if (ib.b_errs != NULL)
                return (SKIP);
        ilevel--;
        for (sizepb = sblock.fs_bsize, i = 0; i < ilevel; i++)
                return (SKIP);
        ilevel--;
        for (sizepb = sblock.fs_bsize, i = 0; i < ilevel; i++)
@@ -146,15 +148,12 @@ ginode(inumber)
        daddr_t iblk;
        static ino_t startinum = 0;     /* blk num of first in raw area */
 
        daddr_t iblk;
        static ino_t startinum = 0;     /* blk num of first in raw area */
 
-
        if (inumber < ROOTINO || inumber > imax)
                errexit("bad inode number %d to ginode\n", inumber);
        if (startinum == 0 ||
            inumber < startinum || inumber >= startinum + INOPB(&sblock)) {
                iblk = itod(&sblock, inumber);
        if (inumber < ROOTINO || inumber > imax)
                errexit("bad inode number %d to ginode\n", inumber);
        if (startinum == 0 ||
            inumber < startinum || inumber >= startinum + INOPB(&sblock)) {
                iblk = itod(&sblock, inumber);
-               if (getblk(&inoblk, iblk, sblock.fs_bsize) == NULL) {
-                       return (NULL);
-               }
+               getblk(&inoblk, iblk, sblock.fs_bsize);
                startinum = (inumber / INOPB(&sblock)) * INOPB(&sblock);
        }
        return (&inoblk.b_un.b_dinode[inumber % INOPB(&sblock)]);
                startinum = (inumber / INOPB(&sblock)) * INOPB(&sblock);
        }
        return (&inoblk.b_un.b_dinode[inumber % INOPB(&sblock)]);
@@ -214,7 +213,7 @@ pinode(ino)
 {
        register DINODE *dp;
        register char *p;
 {
        register DINODE *dp;
        register char *p;
-       char uidbuf[BUFSIZ];
+       struct passwd *pw;
        char *ctime();
 
        printf(" I=%u ", ino);
        char *ctime();
 
        printf(" I=%u ", ino);
@@ -222,14 +221,10 @@ pinode(ino)
                return;
        dp = ginode(ino);
        printf(" OWNER=");
                return;
        dp = ginode(ino);
        printf(" OWNER=");
-       if (getpw((int)dp->di_uid, uidbuf) == 0) {
-               for (p = uidbuf; *p != ':'; p++);
-               *p = 0;
-               printf("%s ", uidbuf);
-       }
-       else {
+       if ((pw = getpwuid((int)dp->di_uid)) != 0)
+               printf("%s ", pw->pw_name);
+       else
                printf("%d ", dp->di_uid);
                printf("%d ", dp->di_uid);
-       }
        printf("MODE=%o\n", dp->di_mode);
        if (preen)
                printf("%s: ", devname);
        printf("MODE=%o\n", dp->di_mode);
        if (preen)
                printf("%s: ", devname);