]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
fakestat should preclude afsdb lookups too
authorDerrick Brashear <shadow@dementia.org>
Thu, 4 Feb 2010 00:01:28 +0000 (19:01 -0500)
committerDerrick Brashear <shadow|account-1000005@unknown>
Thu, 4 Feb 2010 03:11:57 +0000 (19:11 -0800)
macos tries to look up ._foo stuff. correctly identify those (mvstat 2, not
1) and also use tryEvalOnly to preclude AFSDB lookups

Change-Id: I490fe98d695c4d230210bc4e4645ea20cd4d8fa2
Reviewed-on: http://gerrit.openafs.org/1228
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
(cherry picked from commit 682db4d64d550af86dc5a09786e050c6a98ffb0c)
Reviewed-on: http://gerrit.openafs.org/1232

src/afs/VNOPS/afs_vnop_lookup.c

index 78368d66bf12266051e26a6503eadd6ef0d1b8b2..85e01eb8aaebe913226bb5c53e042061cb64afec 100644 (file)
@@ -1150,6 +1150,8 @@ afs_lookup(OSI_VC_DECL(adp), char *aname, struct vcache **avcp, struct AFS_UCRED
            tryEvalOnly = 1;
        if (strcmp(aname, "Contents") == 0)
            tryEvalOnly = 1;
+    }
+    if (afs_fakestat_enable && adp->mvstat == 2) {
        if (strncmp(aname, "._", 2) == 0)
            tryEvalOnly = 1;
     }
@@ -1364,7 +1366,7 @@ afs_lookup(OSI_VC_DECL(adp), char *aname, struct vcache **avcp, struct AFS_UCRED
        ReleaseReadLock(&tdc->lock);
        afs_PutDCache(tdc);
 
-       if (code == ENOENT && afs_IsDynroot(adp) && dynrootRetry) {
+       if (code == ENOENT && afs_IsDynroot(adp) && dynrootRetry && !tryEvalOnly) {
            ReleaseReadLock(&adp->lock);
            dynrootRetry = 0;
            if (tname[0] == '.')
@@ -1387,7 +1389,7 @@ afs_lookup(OSI_VC_DECL(adp), char *aname, struct vcache **avcp, struct AFS_UCRED
 
        if (code) {
            if (code != ENOENT) {
-               printf("LOOKUP dirLookupOff -> %d\n", code);
+               /*printf("LOOKUP dirLookupOff -> %d\n", code);*/
            }
            goto done;
        }