#ifdef KERNEL
# if !defined(UKERNEL)
# include "h/types.h"
-# include "h/param.h"
+# if !defined(AFS_LINUX26_ENV)
+# include "h/param.h"
+# endif
# ifdef AFS_AUX_ENV
# include "h/mmu.h"
# include "h/seg.h"
# include "h/user.h"
# endif /* AFS_SGI64_ENV */
# include "h/uio.h"
-# ifdef AFS_OSF_ENV
-# include <sys/mount.h>
-# include <sys/vnode.h>
-# include <ufs/inode.h>
-# endif
# if !defined(AFS_SUN5_ENV) && !defined(AFS_LINUX20_ENV) && !defined(AFS_HPUX110_ENV)
# include "h/mbuf.h"
# endif
DRelease(&prevbuf, 1);
index = DVOffset(&entrybuf) / 32;
nitems = afs_dir_NameBlobs(firstitem->name);
- DRelease(&entrybuf, 0);
+ /* Clear entire DirEntry and any DirXEntry extensions */
+ memset(firstitem, 0, nitems * sizeof(*firstitem));
+ DRelease(&entrybuf, 1);
FreeBlobs(dir, index, nitems);
return 0;
}
/* read the page in. */
if (DRead(dir, i, &pagebuf) != 0) {
- DRelease(&headerbuf, 1);
break;
}
pp = (struct PageHeader *)pagebuf.data;
goto out;
ep = (struct DirEntry *)entrybuf.data;
- if (!ep)
+ if (!ep) {
+ DRelease(&entrybuf, 0);
break;
+ }
num = ntohs(ep->next);
code = (*proc) (hook, ep->name, ntohl(ep->fid.vnode),
tval = hval & (NHASHENT - 1);
if (tval == 0)
return tval;
- else if (hval >= 1<<31)
+ else if (hval >= 1u<<31)
tval = NHASHENT - tval;
return tval;
}