#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>
#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
#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>
#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;
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;
int holdstate;
#endif /* ACLS */
- /*
+ /*
* check for "."
*/
if (idesc->id_entryno != 0)
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) {
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;
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) {
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 {