summaryrefslogtreecommitdiffstats
path: root/sbin/fsck_ffs/inode.c
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1997-03-11 12:20:21 +0000
committerpeter <peter@FreeBSD.org>1997-03-11 12:20:21 +0000
commitac28da2dc002612b2fd129500af8084d63aa8504 (patch)
tree8cadfc9709953ec63a6c3fe257fe499055b9f832 /sbin/fsck_ffs/inode.c
parent683ee3c015f8c8071f4de0e2cd952c8643315c98 (diff)
downloadFreeBSD-src-ac28da2dc002612b2fd129500af8084d63aa8504.zip
FreeBSD-src-ac28da2dc002612b2fd129500af8084d63aa8504.tar.gz
Merge from Lite2. Note that Lite2 has it's own filesystem clean check
skipping code that overrides ours sooner. One should be eliminated, but for now it works.
Diffstat (limited to 'sbin/fsck_ffs/inode.c')
-rw-r--r--sbin/fsck_ffs/inode.c54
1 files changed, 28 insertions, 26 deletions
diff --git a/sbin/fsck_ffs/inode.c b/sbin/fsck_ffs/inode.c
index 5adac75..9e22bdc 100644
--- a/sbin/fsck_ffs/inode.c
+++ b/sbin/fsck_ffs/inode.c
@@ -32,32 +32,35 @@
*/
#ifndef lint
-static const char sccsid[] = "@(#)inode.c 8.5 (Berkeley) 2/8/95";
+static const char sccsid[] = "@(#)inode.c 8.8 (Berkeley) 4/28/95";
#endif /* not lint */
#include <sys/param.h>
#include <sys/time.h>
+
#include <ufs/ufs/dinode.h>
#include <ufs/ufs/dir.h>
#include <ufs/ffs/fs.h>
+
+#include <err.h>
#include <pwd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+
#include "fsck.h"
static ino_t startinum;
-static int iblock __P((struct inodesc *idesc, long ilevel, quad_t isize));
+static int iblock __P((struct inodesc *, long ilevel, quad_t isize));
int
ckinode(dp, idesc)
struct dinode *dp;
register struct inodesc *idesc;
{
- register daddr_t *ap;
- int ret;
- long n, ndb, offset;
+ ufs_daddr_t *ap;
+ long ret, n, ndb, offset;
struct dinode dino;
quad_t remsize, sizepb;
mode_t mode;
@@ -147,9 +150,9 @@ iblock(idesc, ilevel, isize)
long ilevel;
quad_t isize;
{
- register daddr_t *ap;
- register daddr_t *aplim;
- register struct bufarea *bp;
+ ufs_daddr_t *ap;
+ ufs_daddr_t *aplim;
+ struct bufarea *bp;
int i, n, (*func)(), nif;
quad_t sizepb;
char buf[BUFSIZ];
@@ -229,7 +232,7 @@ iblock(idesc, ilevel, isize)
*/
int
chkrange(blk, cnt)
- daddr_t blk;
+ ufs_daddr_t blk;
int cnt;
{
register int c;
@@ -268,10 +271,10 @@ struct dinode *
ginode(inumber)
ino_t inumber;
{
- daddr_t iblk;
+ ufs_daddr_t iblk;
if (inumber < ROOTINO || inumber > maxino)
- errexit("bad inode number %d to ginode\n", inumber);
+ errx(EEXIT, "bad inode number %d to ginode", inumber);
if (startinum == 0 ||
inumber < startinum || inumber >= startinum + INOPB(&sblock)) {
iblk = ino_to_fsba(&sblock, inumber);
@@ -296,11 +299,11 @@ getnextinode(inumber)
ino_t inumber;
{
long size;
- daddr_t dblk;
+ ufs_daddr_t dblk;
static struct dinode *dp;
if (inumber != nextino++ || inumber > maxino)
- errexit("bad inode number %d to nextinode\n", inumber);
+ errx(EEXIT, "bad inode number %d to nextinode", inumber);
if (inumber >= lastinum) {
readcnt++;
dblk = fsbtodb(&sblock, ino_to_fsba(&sblock, lastinum));
@@ -338,7 +341,7 @@ resetinodebuf()
}
if (inodebuf == NULL &&
(inodebuf = (struct dinode *)malloc((unsigned)inobufsize)) == NULL)
- errexit("Cannot allocate space for inode buffer\n");
+ errx(EEXIT, "Cannot allocate space for inode buffer");
while (nextino < ROOTINO)
(void)getnextinode(nextino);
}
@@ -372,7 +375,7 @@ cacheino(dp, inumber)
if (blks > NDADDR)
blks = NDADDR + NIADDR;
inp = (struct inoinfo *)
- malloc(sizeof(*inp) + (blks - 1) * sizeof(daddr_t));
+ malloc(sizeof(*inp) + (blks - 1) * sizeof(ufs_daddr_t));
if (inp == NULL)
return;
inpp = &inphead[inumber % numdirs];
@@ -385,15 +388,14 @@ cacheino(dp, inumber)
inp->i_dotdot = (ino_t)0;
inp->i_number = inumber;
inp->i_isize = dp->di_size;
- inp->i_numblks = blks * sizeof(daddr_t);
- bcopy((char *)&dp->di_db[0], (char *)&inp->i_blks[0],
- (size_t)inp->i_numblks);
+ inp->i_numblks = blks * sizeof(ufs_daddr_t);
+ memmove(&inp->i_blks[0], &dp->di_db[0], (size_t)inp->i_numblks);
if (inplast == listmax) {
listmax += 100;
inpsort = (struct inoinfo **)realloc((char *)inpsort,
(unsigned)listmax * sizeof(struct inoinfo *));
if (inpsort == NULL)
- errexit("cannot increase directory list");
+ errx(EEXIT, "cannot increase directory list");
}
inpsort[inplast++] = inp;
}
@@ -412,7 +414,7 @@ getinoinfo(inumber)
continue;
return (inp);
}
- errexit("cannot find inode %d\n", inumber);
+ errx(EEXIT, "cannot find inode %d", inumber);
return ((struct inoinfo *)0);
}
@@ -472,7 +474,7 @@ findname(idesc)
if (dirp->d_ino != idesc->id_parent)
return (KEEPON);
- bcopy(dirp->d_name, idesc->id_name, (size_t)dirp->d_namlen + 1);
+ memmove(idesc->id_name, dirp->d_name, (size_t)dirp->d_namlen + 1);
return (STOP|FOUND);
}
@@ -514,7 +516,7 @@ pinode(ino)
if (preen)
printf("%s: ", cdevname);
printf("SIZE=%qu ", dp->di_size);
- p = ctime(&dp->di_mtime.tv_sec);
+ p = ctime(&dp->di_mtime);
printf("MTIME=%12.12s %4.4s ", &p[4], &p[20]);
}
@@ -522,7 +524,7 @@ void
blkerror(ino, type, blk)
ino_t ino;
char *type;
- daddr_t blk;
+ ufs_daddr_t blk;
{
pfatal("%ld %s I=%lu", blk, type, ino);
@@ -542,7 +544,7 @@ blkerror(ino, type, blk)
return;
default:
- errexit("BAD STATE %d TO BLKERR", statemap[ino]);
+ errx(EEXIT, "BAD STATE %d TO BLKERR", statemap[ino]);
/* NOTREACHED */
}
}
@@ -585,7 +587,7 @@ allocino(request, type)
return (0);
}
dp->di_mode = type;
- (void)time(&dp->di_atime.tv_sec);
+ (void)time(&dp->di_atime);
dp->di_mtime = dp->di_ctime = dp->di_atime;
dp->di_size = sblock.fs_fsize;
dp->di_blocks = btodb(sblock.fs_fsize);
@@ -606,7 +608,7 @@ freeino(ino)
struct inodesc idesc;
struct dinode *dp;
- bzero((char *)&idesc, sizeof(struct inodesc));
+ memset(&idesc, 0, sizeof(struct inodesc));
idesc.id_type = ADDR;
idesc.id_func = pass4check;
idesc.id_number = ino;
OpenPOWER on IntegriCloud