]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
DEVEL15-windows-dot-dir-part-two-20060906
authorJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 6 Sep 2006 18:21:19 +0000 (18:21 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 6 Sep 2006 18:21:19 +0000 (18:21 +0000)
cm_LookupInternal can return the input stat cache entry when the name
is "."

the DNLC should not cache "." or ".."

(cherry picked from commit a63d753df88e547606f703764031ad1b9d18fa82)

src/WINNT/afsd/cm_dnlc.c
src/WINNT/afsd/cm_vnodeops.c

index 184ca71feda70a5913f940817dbfcda31d8cf0ae..9c555b0e5d1763612b664585e1599b0550a650be 100644 (file)
@@ -116,7 +116,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 415552ee0f5e8be878905639bc8c93623dacbe01..84467c2b11e9fa4e7b7dfa2ecc14eef5460880b5 100644 (file)
@@ -1094,6 +1094,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));