From: Jeffrey Altman Date: Wed, 6 Sep 2006 18:19:36 +0000 (+0000) Subject: windows-dot-dir-part-two-20060906 X-Git-Tag: BP-openafs-windows-kdfs-ifs~1055 X-Git-Url: https://git.openafs.org/?p=openafs.git;a=commitdiff_plain;h=a63d753df88e547606f703764031ad1b9d18fa82 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 ".." --- diff --git a/src/WINNT/afsd/cm_dnlc.c b/src/WINNT/afsd/cm_dnlc.c index 80eb857..9cc0bf9 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 f7b26d9..ee8127c 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));