windows-dot-dir-part-two-20060906
authorJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 6 Sep 2006 18:19:36 +0000 (18:19 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 6 Sep 2006 18:19:36 +0000 (18:19 +0000)
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
src/WINNT/afsd/cm_vnodeops.c

index 80eb857..9cc0bf9 100644 (file)
@@ -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);
index f7b26d9..ee8127c 100644 (file)
@@ -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));