From a63d753df88e547606f703764031ad1b9d18fa82 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Wed, 6 Sep 2006 18:19:36 +0000 Subject: [PATCH] windows-dot-dir-part-two-20060906 cm_LookupInternal can return the input stat cache entry when the name is "." the DNLC should not cache "." or ".." --- src/WINNT/afsd/cm_dnlc.c | 5 ++++- src/WINNT/afsd/cm_vnodeops.c | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/WINNT/afsd/cm_dnlc.c b/src/WINNT/afsd/cm_dnlc.c index 80eb8575a..9cc0bf960 100644 --- a/src/WINNT/afsd/cm_dnlc.c +++ b/src/WINNT/afsd/cm_dnlc.c @@ -114,7 +114,10 @@ cm_dnlcEnter ( cm_scache_t *adp, if (!cm_useDnlc) return ; - + + if (!strcmp(aname,".") || !strcmp(aname,"..")) + return ; + if ( cm_debugDnlc ) osi_Log3(afsd_logp,"cm_dnlcEnter dir %x name %s scache %x", adp, osi_LogSaveString(afsd_logp,aname), avc); diff --git a/src/WINNT/afsd/cm_vnodeops.c b/src/WINNT/afsd/cm_vnodeops.c index f7b26d904..ee8127cb1 100644 --- a/src/WINNT/afsd/cm_vnodeops.c +++ b/src/WINNT/afsd/cm_vnodeops.c @@ -1092,6 +1092,9 @@ long cm_LookupInternal(cm_scache_t *dscp, char *namep, long flags, cm_user_t *us return CM_ERROR_NOSUCHVOLUME; rock.fid = dscp->dotdotFid; goto haveFid; + } else if (strcmp(namep, ".") == 0) { + rock.fid = dscp->fid; + goto haveFid; } memset(&rock, 0, sizeof(rock)); -- 2.39.5