summaryrefslogtreecommitdiff
path: root/ufs-fsck
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2002-06-11 21:41:14 +0000
committerRoland McGrath <roland@gnu.org>2002-06-11 21:41:14 +0000
commit579fada1c063cbf755bdd7d43dde61c29b34e156 (patch)
treecfe6fc576d44b1c741d875544f5f6d5564b2bae2 /ufs-fsck
parentb19c3a2f52cffed8c457b6b16f03d4e05bc96390 (diff)
2002-06-08 Roland McGrath <roland@frob.com>
* dir.c, pass1.c, pass2.c, utilities.c: Use %Ld for ino_t values.
Diffstat (limited to 'ufs-fsck')
-rw-r--r--ufs-fsck/dir.c98
-rw-r--r--ufs-fsck/pass1.c78
-rw-r--r--ufs-fsck/pass2.c49
-rw-r--r--ufs-fsck/utilities.c6
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);