diff options
Diffstat (limited to 'ufs-fsck')
-rw-r--r-- | ufs-fsck/dir.c | 98 | ||||
-rw-r--r-- | ufs-fsck/pass1.c | 78 | ||||
-rw-r--r-- | ufs-fsck/pass2.c | 49 | ||||
-rw-r--r-- | ufs-fsck/utilities.c | 6 |
4 files changed, 114 insertions, 117 deletions
diff --git a/ufs-fsck/dir.c b/ufs-fsck/dir.c index 04541c4f..85757b16 100644 --- a/ufs-fsck/dir.c +++ b/ufs-fsck/dir.c @@ -1,5 +1,5 @@ /* Directory management subroutines - Copyright (C) 1994, 1996, 1999 Free Software Foundation, Inc. + Copyright (C) 1994,96,99,2002 Free Software Foundation, Inc. Written by Michael I. Bushnell. This file is part of the GNU Hurd. @@ -28,19 +28,19 @@ record_directory (struct dinode *dp, ino_t number) { u_int blks; struct dirinfo *dnp; - + blks = howmany (dp->di_size, sblock->fs_bsize); if (blks > NDADDR) blks = NDADDR + NIADDR; blks *= sizeof (daddr_t); dnp = malloc (sizeof (struct dirinfo) + blks); - + dnp->i_number = number; dnp->i_parent = dnp->i_dotdot = 0; dnp->i_isize = dp->di_size; dnp->i_numblks = blks; bcopy (dp->di_db, dnp->i_blks, blks); - + if (dirarrayused == dirarraysize) { if (dirarraysize == 0) @@ -68,12 +68,12 @@ struct dirinfo * lookup_directory (ino_t ino) { int i; - + for (i = 0; i < dirarrayused; i++) if (dirarray[i]->i_number == ino) return dirarray[i]; - - errexit ("Cannot find chached directory I=%d\n", ino); + + errexit ("Cannot find cached directory I=%Ld\n", ino); } /* Check to see if DIR is really a readable directory; if it @@ -87,23 +87,23 @@ validdir (ino_t dir, char *action) case DIRECTORY: case DIRECTORY|DIR_REF: return 1; - + case UNALLOC: - warning (1, "CANNOT %s I=%d; NOT ALLOCATED", action, dir); + warning (1, "CANNOT %s I=%Ld; NOT ALLOCATED", action, dir); return 0; - + case BADDIR: - warning (1, "CANNOT %s I=%d; BAD BLOCKS", action, dir); + warning (1, "CANNOT %s I=%Ld; BAD BLOCKS", action, dir); return 0; - + case REG: - warning (1, "CANNOT %s I=%d; NOT DIRECTORY", action, dir); + warning (1, "CANNOT %s I=%Ld; NOT DIRECTORY", action, dir); return 0; default: errexit ("ILLEGAL STATE"); } -} +} /* Search directory DIR for name NAME. If NAME is found, then set *INO to the inode of the entry; otherwise clear INO. Returns 1 if all @@ -114,7 +114,7 @@ searchdir (ino_t dir, char *name, ino_t *ino) struct dinode dino; int len; - /* Scan through one directory block and see if it + /* Scan through one directory block and see if it contains NAME. */ void check1block (void *buf) @@ -147,7 +147,7 @@ searchdir (ino_t dir, char *name, ino_t *ino) { void *buf = alloca (nfrags * sblock->fs_fsize); void *bufp; - + readblock (fsbtodb (sblock, bno), buf, nfrags * sblock->fs_fsize); for (bufp = buf; bufp - buf < nfrags * sblock->fs_fsize @@ -160,7 +160,7 @@ searchdir (ino_t dir, char *name, ino_t *ino) } return 1; } - + *ino = 0; if (!validdir (dir, "READ")) @@ -220,7 +220,7 @@ changeino (ino_t dir, char *name, ino_t ino) { void *buf = alloca (nfrags * sblock->fs_fsize); void *bufp; - + readblock (fsbtodb (sblock, bno), buf, nfrags * sblock->fs_fsize); for (bufp = buf; bufp - buf < nfrags * sblock->fs_fsize @@ -236,10 +236,10 @@ changeino (ino_t dir, char *name, ino_t ino) } return 1; } - + if (!validdir (dir, "REWRITE")) return 0; - + getinode (dir, &dino); len = strlen (name); madechange = 0; @@ -254,7 +254,7 @@ expanddir (struct dinode *dp) { daddr_t lastbn, newblk; char *cp, buf[sblock->fs_bsize]; - + lastbn = lblkno (sblock, dp->di_size); if (blkoff (sblock, dp->di_size) && lastbn >= NDADDR - 1) return 0; @@ -264,24 +264,24 @@ expanddir (struct dinode *dp) return 0; else if (!blkoff (sblock, dp->di_size) && dp->di_db[lastbn]) return 0; - + newblk = allocblk (sblock->fs_frag); if (!newblk) return 0; - + if (blkoff (sblock, dp->di_size)) dp->di_db[lastbn + 1] = dp->di_db[lastbn]; dp->di_db[lastbn] = newblk; dp->di_size += sblock->fs_bsize; dp->di_blocks += sblock->fs_bsize / DEV_BSIZE; - + for (cp = buf; cp < buf + sblock->fs_bsize; cp += DIRBLKSIZ) { struct directory_entry *dir = (struct directory_entry *) cp; dir->d_ino = 0; dir->d_reclen = DIRBLKSIZ; } - + writeblock (fsbtodb (sblock, newblk), buf, sblock->fs_bsize); return 1; } @@ -297,10 +297,10 @@ makeentry (ino_t dir, ino_t ino, char *name) struct dinode dino; int needed; int madeentry; - + /* Read a directory block and see if it contains room for the new entry. If so, add it and return 1; otherwise return 0. */ - int + int check1block (void *buf) { struct directory_entry *dp; @@ -341,7 +341,7 @@ makeentry (ino_t dir, ino_t ino, char *name) } } return 0; - } + } /* Read part of a directory and look to see if it contains NAME. Return 1 if we should keep looking @@ -351,7 +351,7 @@ makeentry (ino_t dir, ino_t ino, char *name) { void *buf = alloca (nfrags * sblock->fs_fsize); void *bufp; - + readblock (fsbtodb (sblock, bno), buf, nfrags * sblock->fs_fsize); for (bufp = buf; bufp - buf < nfrags * sblock->fs_fsize @@ -367,10 +367,10 @@ makeentry (ino_t dir, ino_t ino, char *name) } return 1; } - + if (!validdir (dir, "MODIFY")) return 0; - + getinode (dir, &dino); len = strlen (name); needed = DIRSIZ (len); @@ -379,7 +379,7 @@ makeentry (ino_t dir, ino_t ino, char *name) if (!madeentry) { /* Attempt to expand the directory. */ - problem (0, "NO SPACE LEFT IN DIR INO=%d", dir); + problem (0, "NO SPACE LEFT IN DIR INO=%Ld", dir); if (preen || reply ("EXPAND")) { if (expanddir (&dino)) @@ -408,7 +408,7 @@ allocdir (ino_t parent, ino_t request, mode_t mode) ino_t ino; mode |= IFDIR; - + ino = allocino (request, mode); if (!ino) return 0; @@ -416,11 +416,11 @@ allocdir (ino_t parent, ino_t request, mode_t mode) goto bad; if (!makeentry (ino, parent, "..")) goto bad; - + linkfound[ino]++; linkfound[parent]++; return ino; - + bad: freeino (ino); return 0; @@ -471,16 +471,16 @@ linkup (ino_t ino, ino_t parent) } } } - + getinode (lfdir, &lfdino); if ((lfdino.di_model & IFMT) != IFDIR) { ino_t oldlfdir; - + problem (1, "`%s' IS NOT A DIRECTORY", lfname); if (! reply ("REALLOCATE")) return 0; - + oldlfdir = lfdir; lfdir = allocdir (ROOTINO, 0, lfmode); @@ -494,20 +494,20 @@ linkup (ino_t ino, ino_t parent) warning (1, "SORRY, CANNOT CREATE `%s' DIRECTORY", lfname); return 0; } - + /* One less link to the old one */ linkfound[oldlfdir]--; - + getinode (lfdir, &lfdino); } - + if (inodestate[lfdir] != DIRECTORY && inodestate[lfdir] != (DIRECTORY|DIR_REF)) { warning (1, "SORRY. `%s' DIRECTORY NOT ALLOCATED", lfname); return 0; } - asprintf (&tempname, "#%d", ino); + asprintf (&tempname, "#%Ld", ino); search_failed = !searchdir (lfdir, tempname, &foo); while (foo) { @@ -531,7 +531,7 @@ linkup (ino_t ino, ino_t parent) } free (tempname); linkfound[ino]++; - + if (parent != -1) { /* Reset `..' in ino */ @@ -539,7 +539,7 @@ linkup (ino_t ino, ino_t parent) { if (!changeino (ino, "..", lfdir)) { - warning (1, "CANNOT ADJUST `..' LINK I=%u", ino); + warning (1, "CANNOT ADJUST `..' LINK I=%Ld", ino); return 0; } /* Forget about link to old parent */ @@ -547,21 +547,21 @@ linkup (ino_t ino, ino_t parent) } else if (!makeentry (ino, lfdir, "..")) { - warning (1, "CANNOT CREAT `..' LINK I=%u", ino); + warning (1, "CANNOT CREAT `..' LINK I=%Ld", ino); return 0; } - + /* Account for link to lost+found; update inode directly here to avoid confusing warning later. */ linkfound[lfdir]++; linkcount[lfdir]++; lfdino.di_nlink++; write_inode (lfdir, &lfdino); - + if (parent) - warning (0, "DIR I=%u CONNECTED; PARENT WAS I=%u", ino, parent); + warning (0, "DIR I=%Ld CONNECTED; PARENT WAS I=%Ld", ino, parent); else - warning (0, "DIR I=%u CONNECTED", ino); + warning (0, "DIR I=%Ld CONNECTED", ino); } return 1; } diff --git a/ufs-fsck/pass1.c b/ufs-fsck/pass1.c index 066f4649..bd41cc62 100644 --- a/ufs-fsck/pass1.c +++ b/ufs-fsck/pass1.c @@ -1,5 +1,5 @@ /* Pass one of GNU fsck -- count blocks and verify inodes - Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1994,95,96,2002 Free Software Foundation, Inc. Written by Michael I. Bushnell. This file is part of the GNU Hurd. @@ -24,7 +24,7 @@ static struct dinode zino; -/* Find all the blocks in use by files and filesystem reserved blocks. +/* Find all the blocks in use by files and filesystem reserved blocks. Set them in the global block map. For each file, if a block is found allocated twice, then record the block and inode in DUPLIST. Initialize INODESTATE, LINKCOUNT, and TYPEMAP. */ @@ -52,7 +52,7 @@ pass1 () node. Increment NBLOCKS by the number of data blocks held. Set BLKERROR if this block is invalid. Return RET_GOOD, RET_BAD, RET_STOP if the block is good, - bad, or if we should entirely stop checking blocks in this + bad, or if we should entirely stop checking blocks in this inode. */ int checkblock (daddr_t bno, int nfrags, off_t offset) @@ -69,10 +69,10 @@ pass1 () blkerror = 1; wasbad = 1; if (nblkrngerrors == 0) - warning (0, "I=%d HAS BAD BLOCKS", number); + warning (0, "I=%Ld HAS BAD BLOCKS", number); if (nblkrngerrors++ > MAXBAD) { - problem (0, "EXCESSIVE BAD BLKS I=%d", number); + problem (0, "EXCESSIVE BAD BLKS I=%Ld", number); if (preen || reply ("SKIP")) { pfail ("SKIPPING"); @@ -93,12 +93,12 @@ pass1 () { blkerror = 1; if (nblkduperrors == 0) - warning (0, "I=%d HAS DUPLICATE BLOCKS", number); + warning (0, "I=%Ld HAS DUPLICATE BLOCKS", number); warning (0, "DUPLICATE BLOCK %ld", bno); wasbad = 1; if (nblkduperrors++ > MAXBAD) { - problem (0, "EXCESSIVE DUP BLKS I=%d", number); + problem (0, "EXCESSIVE DUP BLKS I=%Ld", number); if (preen || reply ("SKIP")) { pfail ("SKIPPING"); @@ -128,16 +128,16 @@ pass1 () } return wasbad ? RET_BAD : RET_GOOD; } - + /* Account for blocks used by meta data */ for (cg = 0; cg < sblock->fs_ncg; cg++) { daddr_t firstdata, firstcgblock, bno; - + /* Each cylinder group past the first reserves data from its cylinder group copy to (but not including) - the first datablock. + the first datablock. The first, however, reserves from the very front of the cylinder group (thus including the boot block), and it also @@ -155,7 +155,7 @@ pass1 () for (bno = firstcgblock; bno < firstdata; bno++) setbmap (bno); } - + /* Loop through each inode, doing initial checks */ for (number = 0, cg = 0; cg < sblock->fs_ncg; cg++) for (i = 0; i < sblock->fs_ipg; i++, number++) @@ -165,15 +165,15 @@ pass1 () int dbwarn = 0, ibwarn = 0; /* if (!preen && !(number % 10000)) - printf ("I=%d\n", number); */ + printf ("I=%Ld\n", number); */ if (number < ROOTINO) continue; - + getinode (number, dp); mode = DI_MODE (dp); type = mode & IFMT; - + /* If the node is not allocated, then make sure it's properly clear */ if (type == 0) @@ -184,7 +184,7 @@ pass1 () || DI_MODE (dp) || dp->di_size) { - problem (0, "PARTIALLY ALLOCATED INODE I=%d", number); + problem (0, "PARTIALLY ALLOCATED INODE I=%Ld", number); if (preen || reply ("CLEAR")) { clear_inode (number, dp); @@ -196,15 +196,15 @@ pass1 () else { /* Node is allocated. */ - + /* Check to see if we think the node should be cleared */ /* Verify size for basic validity */ holdallblocks = 0; - + if (dp->di_size + sblock->fs_bsize - 1 < dp->di_size) { - problem (1, "OVERFLOW IN FILE SIZE I=%d (SIZE == %lld)", number, + problem (1, "OVERFLOW IN FILE SIZE I=%Ld (SIZE == %lld)", number, dp->di_size); if (reply ("CLEAR")) { @@ -213,12 +213,12 @@ pass1 () continue; } inodestate[number] = UNALLOC; - warning (0, "WILL TREAT ANY BLOCKS HELD BY I=%d AS ALLOCATED", + warning (0, "WILL TREAT ANY BLOCKS HELD BY I=%Ld AS ALLOCATED", number); holdallblocks = 1; } - /* Decode type and set NDB + /* Decode type and set NDB also set inodestate correctly. */ inodestate[number] = REG; switch (type) @@ -227,19 +227,19 @@ pass1 () case IFCHR: ndb = 1; break; - + case IFIFO: case IFSOCK: ndb = 0; break; - + case IFLNK: if (sblock->fs_maxsymlinklen != -1) { /* Check to see if this is a fastlink. The old fast link format has fs_maxsymlinklen of zero and di_blocks zero; the new format has - fs_maxsymlinklen set and we ignore di_blocks. + fs_maxsymlinklen set and we ignore di_blocks. So check for either. */ if ((sblock->fs_maxsymlinklen && dp->di_size < sblock->fs_maxsymlinklen) @@ -262,16 +262,16 @@ pass1 () else ndb = howmany (dp->di_size, sblock->fs_bsize); break; - + case IFDIR: inodestate[number] = DIRECTORY; /* Fall through */ case IFREG: ndb = howmany (dp->di_size, sblock->fs_bsize); break; - + default: - problem (1, "UNKNOWN FILE TYPE I=%d (MODE=%ol)", number, mode); + problem (1, "UNKNOWN FILE TYPE I=%Ld (MODE=%ol)", number, mode); if (reply ("CLEAR")) { clear_inode (number, dp); @@ -280,14 +280,14 @@ pass1 () } inodestate[number] = UNALLOC; holdallblocks = 1; - warning (0, "WILL TREAT ANY BLOCKS HELD BY I=%d " + warning (0, "WILL TREAT ANY BLOCKS HELD BY I=%Ld " "AS ALLOCATED", number); ndb = 0; } if (ndb < 0) { - problem (1, "BAD FILE SIZE I= %d (SIZE == %lld)", number, + problem (1, "BAD FILE SIZE I= %Ld (SIZE == %lld)", number, dp->di_size); if (reply ("CLEAR")) { @@ -296,7 +296,7 @@ pass1 () continue; } inodestate[number] = UNALLOC; - warning (0, "WILL TREAT ANY BLOCKS HELD BY I=%d AS ALLOCATED", + warning (0, "WILL TREAT ANY BLOCKS HELD BY I=%Ld AS ALLOCATED", number); holdallblocks = 1; } @@ -308,10 +308,10 @@ pass1 () if (!holdallblocks) { if (dp->di_size - && (type == IFBLK || type == IFCHR + && (type == IFBLK || type == IFCHR || type == IFSOCK || type == IFIFO)) { - problem (1, "SPECIAL NODE I=%d (MODE=%ol) HAS SIZE %lld", + problem (1, "SPECIAL NODE I=%Ld (MODE=%ol) HAS SIZE %lld", number, mode, dp->di_size); if (reply ("TRUNCATE")) { @@ -319,10 +319,10 @@ pass1 () write_inode (number, dp); } } - + /* If we haven't set NDB speciall above, then it is set from the file size correctly by the size check. */ - + /* Check all the direct and indirect blocks that are past the amount necessary to be zero. */ for (lbn = ndb; lbn < NDADDR; lbn++) @@ -332,7 +332,7 @@ pass1 () if (!dbwarn) { dbwarn = 1; - problem (0, "INODE I=%d HAS EXTRA DIRECT BLOCKS", + problem (0, "INODE I=%Ld HAS EXTRA DIRECT BLOCKS", number); if (preen || reply ("DEALLOCATE")) { @@ -357,7 +357,7 @@ pass1 () if (ibwarn) { ibwarn = 1; - problem (0, "INODE I=%d HAS EXTRA INDIRECT BLOCKS", + problem (0, "INODE I=%Ld HAS EXTRA INDIRECT BLOCKS", number); if (preen || reply ("DEALLOCATE")) { @@ -373,7 +373,7 @@ pass1 () write_inode (number, dp); } } - + /* If this node is really allocated (as opposed to something that we should clear but the user won't) then set LINKCOUNT and TYPEMAP entries. */ @@ -397,7 +397,7 @@ pass1 () warning (1, "DUPLICATE or BAD BLOCKS"); else { - problem (0, "I=%d has ", number); + problem (0, "I=%Ld has ", number); if (nblkduperrors) { pextend ("%d DUPLICATE BLOCKS", nblkduperrors); @@ -418,7 +418,7 @@ pass1 () } else if (dp->di_blocks != nblocks) { - problem (0, "INCORRECT BLOCK COUNT I=%d (%ld should be %d)", + problem (0, "INCORRECT BLOCK COUNT I=%Ld (%ld should be %d)", number, dp->di_blocks, nblocks); if (preen || reply ("CORRECT")) { @@ -435,5 +435,3 @@ pass1 () } } } - - diff --git a/ufs-fsck/pass2.c b/ufs-fsck/pass2.c index a2d5996c..d95929ef 100644 --- a/ufs-fsck/pass2.c +++ b/ufs-fsck/pass2.c @@ -1,5 +1,5 @@ /* Pass 2 of GNU fsck -- examine all directories for validity - Copyright (C) 1994, 1996 Free Software Foundation, Inc. + Copyright (C) 1994,96,2002 Free Software Foundation, Inc. Written by Michael I. Bushnell. This file is part of the GNU Hurd. @@ -70,7 +70,7 @@ pass2 () for (bp = (char *)buf; bp < (char *)buf + DIRBLKSIZ; bp++) if (*bp) goto reclen_problem; - + problem (0, "NULL BLOCK IN DIRECTORY"); if (preen || reply ("PATCH")) { @@ -83,7 +83,7 @@ pass2 () else return mod; } - + reclen_problem: problem (1, "BAD RECLEN IN DIRECTORY"); if (reply ("SALVAGE")) @@ -98,7 +98,7 @@ pass2 () /* But give up regardless */ return mod; } - + /* Check INO */ if (dp->d_ino > maxino) { @@ -113,7 +113,7 @@ pass2 () if (!dp->d_ino) continue; - + /* Check INO */ if (inodestate[dp->d_ino] == UNALLOC) { @@ -138,7 +138,7 @@ pass2 () dp->d_ino = 0; mod = 1; } - } + } else { /* Check for illegal characters */ @@ -165,7 +165,7 @@ pass2 () } } } - + if (!dp->d_ino) continue; @@ -181,10 +181,10 @@ pass2 () mod = 1; } } - + /* Here we should check for duplicate directory entries; that's too much trouble right now. */ - + /* Account for the inode in the linkfound map */ if (inodestate[dp->d_ino] != UNALLOC) linkfound[dp->d_ino]++; @@ -205,7 +205,7 @@ pass2 () { problem (0, "EXTRANEOUS LINK `%s' TO DIR I=%ld", dp->d_name, dp->d_ino); - pextend (" FOUND IN DIR I=%d", dnp->i_number); + pextend (" FOUND IN DIR I=%Ld", dnp->i_number); if (preen || reply ("REMOVE")) { dp->d_ino = 0; @@ -234,9 +234,9 @@ pass2 () readblock (fsbtodb (sblock, bno), buf, nfrags * sblock->fs_fsize); rewrite = 0; - for (bufp = buf; + for (bufp = buf; bufp - buf < nfrags * sblock->fs_fsize - && offset + (bufp - buf) + DIRBLKSIZ <= dnp->i_isize; + && offset + (bufp - buf) + DIRBLKSIZ <= dnp->i_isize; bufp += DIRBLKSIZ) { if (check1block (bufp)) @@ -251,7 +251,7 @@ pass2 () { default: errexit ("BAD STATE %d FOR ROOT INODE", (int) (inodestate[ROOTINO])); - + case DIRECTORY: break; @@ -262,7 +262,7 @@ pass2 () if (allocdir (ROOTINO, ROOTINO, 0755) != ROOTINO) errexit ("CANNOT ALLOCATE ROOT INODE"); break; - + case REG: problem (1, "ROOT INODE NOT DIRECTORY"); if (reply ("REALLOCATE")) @@ -270,7 +270,7 @@ pass2 () if (allocdir (ROOTINO, ROOTINO, 0755) != ROOTINO) errexit ("CANNOT ALLOCATE ROOT INODE"); break; - + case BADDIR: problem (1, "DUPLICATE or BAD BLOCKS IN ROOT INODE"); if (reply ("REALLOCATE")) @@ -283,20 +283,20 @@ pass2 () errexit ("ABORTING"); break; } - + /* Sort inpsort */ qsort (dirsorted, dirarrayused, sizeof (struct dirinfo *), sortfunc); - + /* Check basic integrity of each directory */ for (nd = 0; nd < dirarrayused; nd++) { dnp = dirsorted[nd]; - + if (dnp->i_isize == 0) continue; if (dnp->i_isize % DIRBLKSIZ) { - problem (0, "DIRECTORY INO=%d: LENGTH %d NOT MULTIPLE OF %d", + problem (0, "DIRECTORY INO=%Ld: LENGTH %d NOT MULTIPLE OF %d", dnp->i_number, dnp->i_isize, DIRBLKSIZ); if (preen || reply ("ADJUST")) { @@ -310,10 +310,10 @@ pass2 () dino.di_size = dnp->i_isize; assert (dnp->i_numblks <= (NDADDR + NIADDR) * sizeof (daddr_t)); bcopy (dnp->i_blks, dino.di_db, dnp->i_numblks); - + datablocks_iterate (&dino, checkdirblock); } - + /* At this point for each directory: If this directory is an entry in another directory, then i_parent is @@ -323,12 +323,12 @@ pass2 () for (nd = 0; nd < dirarrayused; nd++) { dnp = dirsorted[nd]; - + /* Root is considered to be its own parent even though it isn't listed. */ if (dnp->i_number == ROOTINO && !dnp->i_parent) dnp->i_parent = ROOTINO; - + /* Check `.' to make sure it exists and is correct */ if (dnp->i_dot == 0) { @@ -397,5 +397,4 @@ pass2 () } } } -} - +} diff --git a/ufs-fsck/utilities.c b/ufs-fsck/utilities.c index f3a2b670..5e081fe8 100644 --- a/ufs-fsck/utilities.c +++ b/ufs-fsck/utilities.c @@ -1,5 +1,5 @@ /* Miscellaneous functions for fsck - Copyright (C) 1994, 1995, 1996, 1999, 2001 Free Software Foundation, Inc. + Copyright (C) 1994,95,96,99,2001,02 Free Software Foundation, Inc. Written by Michael I. Bushnell. This file is part of the GNU Hurd. @@ -355,7 +355,7 @@ pinode (int severe, ino_t ino, char *fmt, ...) } if (ino < ROOTINO || ino > maxino) - pextend (" (BOGUS INODE) I=%d", ino); + pextend (" (BOGUS INODE) I=%Ld", ino); else { char *p; @@ -364,7 +364,7 @@ pinode (int severe, ino_t ino, char *fmt, ...) getinode (ino, &dino); - pextend (" %s I=%d", (DI_MODE (&dino) & IFMT) == IFDIR ? "DIR" : "FILE", + pextend (" %s I=%Ld", (DI_MODE (&dino) & IFMT) == IFDIR ? "DIR" : "FILE", ino); pw = getpwuid (dino.di_uid); |