break;
de = (struct DirEntry *)entry.data;
- ino = afs_calc_inum (avc->f.fid.Fid.Volume, ntohl(de->fid.vnode));
+ ino = afs_calc_inum(avc->f.fid.Cell, avc->f.fid.Fid.Volume,
+ ntohl(de->fid.vnode));
if (de->name)
len = strlen(de->name);
break;
de = (struct DirEntry *)entry.data;
- ino = afs_calc_inum (avc->f.fid.Fid.Volume, ntohl(de->fid.vnode));
+ ino = afs_calc_inum(avc->f.fid.Cell, avc->f.fid.Fid.Volume,
+ ntohl(de->fid.vnode));
if (de->name)
len = strlen(de->name);
/* The mount point's vnode. */
if (tvp) {
attrs->va_nodeid =
- afs_calc_inum (tvp->mtpoint.Fid.Volume,
- tvp->mtpoint.Fid.Vnode);
+ afs_calc_inum(tvp->mtpoint.Cell,
+ tvp->mtpoint.Fid.Volume,
+ tvp->mtpoint.Fid.Vnode);
if (FidCmp(&afs_rootFid, &avc->f.fid) && !attrs->va_nodeid)
attrs->va_nodeid = 2;
afs_PutVolume(tvp, READ_LOCK);
attrs->va_nodeid = 2;
} else
attrs->va_nodeid =
- afs_calc_inum (avc->f.fid.Fid.Volume,
- avc->f.fid.Fid.Vnode);
+ afs_calc_inum(avc->f.fid.Cell,
+ avc->f.fid.Fid.Volume,
+ avc->f.fid.Fid.Vnode);
attrs->va_nodeid &= 0x7fffffff; /* Saber C hates negative inode #s! */
attrs->va_nlink = fakedir ? 100 : avc->f.m.LinkCount;
attrs->va_size = fakedir ? 4096 : avc->f.m.Length;
/* afs_util.c */
extern afs_int32 afs_strtoi_r(const char *str, char **endptr, afs_uint32 *ret);
-extern afs_int32 afs_calc_inum (afs_int32 volume, afs_int32 vnode);
+extern afs_int32 afs_calc_inum(afs_int32 cell, afs_int32 volume,
+ afs_int32 vnode);
#ifndef afs_cv2string
extern char *afs_cv2string(char *ttp, afs_uint32 aval);
#endif
#ifdef AFS_LINUX20_ENV
afs_int32
-afs_calc_inum(afs_int32 volume, afs_int32 vnode)
+afs_calc_inum(afs_int32 cell, afs_int32 volume, afs_int32 vnode)
{
afs_int32 ino = 0, vno = vnode;
char digest[16];
if (afs_new_inum) {
int offset;
MD5_Init(&ct);
+ MD5_Update(&ct, &cell, 4);
MD5_Update(&ct, &volume, 4);
MD5_Update(&ct, &vnode, 4);
MD5_Final(digest, &ct);
#else
afs_int32
-afs_calc_inum (afs_int32 volume, afs_int32 vnode)
+afs_calc_inum(afs_int32 cell, afs_int32 volume, afs_int32 vnode)
{
return (volume << 16) + vnode;
}