aboutsummaryrefslogtreecommitdiff
path: root/sbin/fsck_ifs/inode.c
diff options
context:
space:
mode:
authorPeter Wemm <peter@FreeBSD.org>1997-03-11 12:20:21 +0000
committerPeter Wemm <peter@FreeBSD.org>1997-03-11 12:20:21 +0000
commit780a5c1ec16f889d55914a09fbcde7ff7b2cfcca (patch)
tree1eaf4d253b6a6dc9330595ee6ef3e9b9aba85422 /sbin/fsck_ifs/inode.c
parent82b49328cdd209c28fbd5b289ce1987f9d3f7c71 (diff)
downloadsrc-780a5c1ec16f889d55914a09fbcde7ff7b2cfcca.tar.gz
src-780a5c1ec16f889d55914a09fbcde7ff7b2cfcca.zip
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.
Notes
Notes: svn path=/head/; revision=23675
Diffstat (limited to 'sbin/fsck_ifs/inode.c')
-rw-r--r--sbin/fsck_ifs/inode.c54
1 files changed, 28 insertions, 26 deletions
diff --git a/sbin/fsck_ifs/inode.c b/sbin/fsck_ifs/inode.c
index 5adac75f0832..9e22bdcca72d 100644
--- a/sbin/fsck_ifs/inode.c
+++ b/sbin/fsck_ifs/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;