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

src/afs/afs_pioctl.c

index 32d6dab6c87b13445950ff3893184c38c14979d7..9e5145b88f9c98c180e8eb77453f19d7dd068b56 100644 (file)
@@ -973,6 +973,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)