]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
STABLE140-solaris10-fs-find-afs-vnode-20051014
authorChas Williams <chas@cmf.nrl.navy.mil>
Sat, 15 Oct 2005 02:44:50 +0000 (02:44 +0000)
committerDerrick Brashear <shadow@dementia.org>
Sat, 15 Oct 2005 02:44:50 +0000 (02:44 +0000)
find the real vnode so cheating on solaris 10 will work

(cherry picked from commit 012f413e4e35fce33a3039df7611c3ea3b66aeca)

src/afs/afs_pioctl.c

index cc13e04f17e82def9d8229133ae5b66dd85a1992..34de0e0dbb9d41beec23769d74752cab54789d5d 100644 (file)
@@ -967,6 +967,19 @@ afs_syscall_pioctl(path, com, cmarg, follow)
     } else
        vp = NULL;
 
+#if defined(AFS_SUN510_ENV)
+    if (vp && !IsAfsVnode(vp)) {
+       struct vnode *realvp;
+       
+       if (VOP_REALVP(vp, &realvp) == 0) {
+           struct vnode *oldvp = vp;
+           
+           VN_HOLD(realvp);
+           vp = realvp;
+           AFS_RELE(oldvp);
+       }
+    }
+#endif
     /* now make the call if we were passed no file, or were passed an AFS file */
     if (!vp || IsAfsVnode(vp)) {
 #if defined(AFS_SUN5_ENV)