cached-lookup-mtpt-20060120
authorChaskiel M Grundman <cg2v@andrew.cmu.edu>
Fri, 20 Jan 2006 05:19:47 +0000 (05:19 +0000)
committerDerrick Brashear <shadow@dementia.org>
Fri, 20 Jan 2006 05:19:47 +0000 (05:19 +0000)
FIXES 25647

don't do lookups on the wrong vnode, if it's a mvstat=1 vnode, it's not useful

src/afs/DARWIN/osi_vnodeops.c

index 258fbda..db02aa5 100644 (file)
@@ -299,11 +299,14 @@ afs_vop_lookup(ap)
     int wantparent;            /* 1 => wantparent or lockparent flag */
     struct proc *p;
 #ifdef AFS_DARWIN80_ENV
-    error = cache_lookup(ap->a_dvp, ap->a_vpp, ap->a_cnp);
-    if (error == -1) 
-       return 0;
-    if (error == ENOENT) 
-       return error;
+    vcp = VTOAFS(ap->a_dvp);
+    if (vcp->mvstat != 1) {
+       error = cache_lookup(ap->a_dvp, ap->a_vpp, ap->a_cnp);
+       if (error == -1) 
+           return 0;
+       if (error == ENOENT) 
+           return error;
+    }
 #endif
 
     GETNAME();