vfsck: Fix roken fallout
[openafs.git] / src / vfsck / pass2.c
index d35c5f6..472915a 100644 (file)
 #include <afsconfig.h>
 #include <afs/param.h>
 
-RCSID
-    ("$Header$");
+#ifdef AFS_HPUX_ENV
+/* We need the old directory type headers (included below), so don't include
+ * the normal dirent.h, or it will conflict. */
+# undef HAVE_DIRENT_H
+# include <sys/inode.h>
+# define       LONGFILENAMES   1
+# include <sys/sysmacros.h>
+# include <sys/ino.h>
+# define       DIRSIZ_MACRO
+# ifdef HAVE_USR_OLD_USR_INCLUDE_NDIR_H
+#  include </usr/old/usr/include/ndir.h>
+# else
+#  include <ndir.h>
+# endif
+#endif
+
+#include <roken.h>
+
+#include <ctype.h>
 
 #define VICE
-#include <sys/time.h>
-#include <sys/param.h>
 #ifdef AFS_OSF_ENV
 #include <sys/vnode.h>
 #include <sys/mount.h>
@@ -34,13 +49,10 @@ RCSID
 #include <ufs/dir.h>
 #undef _KERNEL
 #undef _BSD
-#include <stdio.h>
 #else /* AFS_OSF_ENV */
 #ifdef AFS_VFSINCL_ENV
 #include <sys/vnode.h>
 #ifdef   AFS_SUN5_ENV
-#include <stdio.h>
-#include <unistd.h>
 #include <sys/fs/ufs_inode.h>
 #include <sys/fs/ufs_fs.h>
 #define _KERNEL
@@ -54,14 +66,7 @@ RCSID
 #endif
 #else /* AFS_VFSINCL_ENV */
 #include <sys/inode.h>
-#ifdef AFS_HPUX_ENV
-#include <ctype.h>
-#define        LONGFILENAMES   1
-#include <sys/sysmacros.h>
-#include <sys/ino.h>
-#define        DIRSIZ_MACRO
-#include <ndir.h>
-#else
+#ifndef        AFS_HPUX_ENV
 #include <sys/dir.h>
 #endif
 #include <sys/fs.h>
@@ -70,21 +75,16 @@ RCSID
 #endif /* AFS_OSF_ENV */
 #include <afs/osi_inode.h>
 
-#ifdef AFS_SUN5_ENV
-#include <string.h>
-#else
-#include <strings.h>
-#endif
 #include "fsck.h"
 
 int pass2check();
 
 pass2()
 {
-    register struct dinode *dp;
+    struct dinode *dp;
     struct inodesc rootdesc;
 
-    memset((char *)&rootdesc, 0, sizeof(struct inodesc));
+    memset(&rootdesc, 0, sizeof(struct inodesc));
     rootdesc.id_type = ADDR;
     rootdesc.id_func = pass2check;
     rootdesc.id_number = ROOTINO;
@@ -166,7 +166,7 @@ pass2()
 pass2check(idesc)
      struct inodesc *idesc;
 {
-    register struct direct *dirp = idesc->id_dirp;
+    struct direct *dirp = idesc->id_dirp;
     char *curpathloc;
     int n, entrysize, ret = 0;
     struct dinode *dp;
@@ -176,7 +176,7 @@ pass2check(idesc)
     int holdstate;
 #endif /* ACLS */
 
-    /* 
+    /*
      * check for "."
      */
     if (idesc->id_entryno != 0)
@@ -198,12 +198,12 @@ pass2check(idesc)
     if (dirp->d_ino != 0 && strcmp(dirp->d_name, "..") != 0) {
        pfatal("CANNOT FIX, FIRST ENTRY IN DIRECTORY CONTAINS %s\n",
               dirp->d_name);
-#if    defined(AFS_SUN_ENV) 
+#if    defined(AFS_SUN_ENV)
        iscorrupt = 1;
 #endif
     } else if (dirp->d_reclen < entrysize) {
        pfatal("CANNOT FIX, INSUFFICIENT SPACE TO ADD '.'\n");
-#if    defined(AFS_SUN_ENV) 
+#if    defined(AFS_SUN_ENV)
        iscorrupt = 1;
 #endif
     } else if (dirp->d_reclen < 2 * entrysize) {
@@ -218,7 +218,7 @@ pass2check(idesc)
        idesc->id_entryno++;
        lncntp[dirp->d_ino]--;
        dirp = (struct direct *)((char *)(dirp) + entrysize);
-       memset((char *)dirp, 0, n);
+       memset(dirp, 0, n);
        dirp->d_reclen = n;
        if (reply("FIX") == 1)
            ret |= ALTERED;
@@ -239,7 +239,7 @@ pass2check(idesc)
        idesc->id_entryno++;
        lncntp[dirp->d_ino]--;
        dirp = (struct direct *)((char *)(dirp) + n);
-       memset((char *)dirp, 0, n);
+       memset(dirp, 0, n);
        dirp->d_reclen = n;
     }
     if (dirp->d_ino != 0 && strcmp(dirp->d_name, "..") == 0) {
@@ -255,12 +255,12 @@ pass2check(idesc)
     if (dirp->d_ino != 0 && strcmp(dirp->d_name, ".") != 0) {
        pfatal("CANNOT FIX, SECOND ENTRY IN DIRECTORY CONTAINS %s\n",
               dirp->d_name);
-#if    defined(AFS_SUN_ENV) 
+#if    defined(AFS_SUN_ENV)
        iscorrupt = 1;
 #endif
     } else if (dirp->d_reclen < entrysize) {
        pfatal("CANNOT FIX, INSUFFICIENT SPACE TO ADD '..'\n");
-#if    defined(AFS_SUN_ENV) 
+#if    defined(AFS_SUN_ENV)
        iscorrupt = 1;
 #endif
     } else {