From d1fd6a19b27e9e0f9e446e3e4c8aaeac00856f59 Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Wed, 3 Feb 2010 19:01:28 -0500 Subject: [PATCH] fakestat should preclude afsdb lookups too 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 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear (cherry picked from commit 682db4d64d550af86dc5a09786e050c6a98ffb0c) Reviewed-on: http://gerrit.openafs.org/1232 --- src/afs/VNOPS/afs_vnop_lookup.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/afs/VNOPS/afs_vnop_lookup.c b/src/afs/VNOPS/afs_vnop_lookup.c index 78368d66b..85e01eb8a 100644 --- a/src/afs/VNOPS/afs_vnop_lookup.c +++ b/src/afs/VNOPS/afs_vnop_lookup.c @@ -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; } -- 2.39.5