diff --git a/src/WINNT/afsd/cm_access.c b/src/WINNT/afsd/cm_access.c index ba747a8086..d9d141a9af 100644 --- a/src/WINNT/afsd/cm_access.c +++ b/src/WINNT/afsd/cm_access.c @@ -38,7 +38,12 @@ int cm_HaveAccessRights(struct cm_scache *scp, struct cm_user *userp, afs_uint32 cm_fid_t tfid; int didLock; long trights; - + + if (scp->flags & CM_SCACHEFLAG_EACCESS) { + *outRightsp = aclScp->anyAccess; + return CM_ERROR_NOACCESS; + } + didLock = 0; if (scp->fileType == CM_SCACHETYPE_DIRECTORY) { aclScp = scp; diff --git a/src/WINNT/afsd/cm_scache.c b/src/WINNT/afsd/cm_scache.c index c643fc41bb..8d32b4e72d 100644 --- a/src/WINNT/afsd/cm_scache.c +++ b/src/WINNT/afsd/cm_scache.c @@ -1313,7 +1313,6 @@ void cm_MergeStatus(cm_scache_t *scp, AFSFetchStatus *statusp, AFSVolSync *volp, if (statusp->errorCode != 0) { scp->flags |= CM_SCACHEFLAG_EACCESS; osi_Log2(afsd_logp, "Merge, Failure scp %x code 0x%x", scp, statusp->errorCode); - return; } else { scp->flags &= ~CM_SCACHEFLAG_EACCESS; }