]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
DEVEL15-windows-merge-eaccess-20070207
authorJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 7 Feb 2007 08:13:29 +0000 (08:13 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 7 Feb 2007 08:13:29 +0000 (08:13 +0000)
when merging status info that has an errorCode of EACCESS set,
merge the garbage we received.

When checking the access to the object return EACCESS if the
stat cache object has the EACCESS flag set.  This will be cleared
the next time a BulkStatus succeeds.

(cherry picked from commit e9fb99c770101de103df0a2ff7ba364159b81f80)

src/WINNT/afsd/cm_access.c
src/WINNT/afsd/cm_scache.c

index 75bc0865e1d8de1eddc09407195ee9dfbff056d5..c5be4871769bb48728d6c7c7b6a529759b0386e5 100644 (file)
@@ -42,7 +42,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;
index c6c55973a554ff3c5ff23fb1043f89a538e6cb1b..fc19dc6712caea8b1aa7b20ce958f816de33f1af 100644 (file)
@@ -1315,7 +1315,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;
     }