fakestat-access-for-nautilus-20080307
[openafs.git] / src / afs / VNOPS / afs_vnop_access.c
index 5677a09..a5cd799 100644 (file)
@@ -209,7 +209,16 @@ afs_access(OSI_VC_DECL(avc), register afs_int32 amode,
     if ((code = afs_InitReq(&treq, acred)))
        return code;
 
-    code = afs_EvalFakeStat(&avc, &fakestate, &treq);
+    if (afs_fakestat_enable && avc->mvstat == 1) {
+       code = afs_TryEvalFakeStat(&avc, &fakestate, &treq);
+        if (code == 0 && avc->mvstat == 1) {
+           afs_PutFakeStat(&fakestate);
+           return 0;
+        }
+    } else {
+       code = afs_EvalFakeStat(&avc, &fakestate, &treq);
+    }
+
     if (code) {
        afs_PutFakeStat(&fakestate);
        return code;