From: Jeffrey Altman Date: Wed, 19 Jun 2013 17:52:51 +0000 (-0400) Subject: Windows: cm_scache flags missing interlocked ops X-Git-Tag: upstream/1.8.0_pre1^2~1114 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=ab4b8629ac273a631ba9db62766a7190e0d0ae21;p=packages%2Fo%2Fopenafs.git Windows: cm_scache flags missing interlocked ops A small number of |= operations on the cm_scache.flags field were not converted to _InterlockedOr. Do so now. Change-Id: Iebd361d53e46527bf3ffa0d20d006a5e90ab4967 Reviewed-on: http://gerrit.openafs.org/9993 Tested-by: BuildBot Reviewed-by: Jeffrey Altman --- diff --git a/src/WINNT/afsd/cm_scache.c b/src/WINNT/afsd/cm_scache.c index e63005f26..8ecb7541e 100644 --- a/src/WINNT/afsd/cm_scache.c +++ b/src/WINNT/afsd/cm_scache.c @@ -899,7 +899,7 @@ long cm_GetSCache(cm_fid_t *fidp, cm_fid_t *parentFidp, cm_scache_t **outScpp, c if (!cellp) { /* put back newScp so it can be reused */ lock_ObtainWrite(&cm_scacheLock); - newScp->flags |= CM_SCACHEFLAG_DELETED; + _InterlockedOr(&newScp->flags, CM_SCACHEFLAG_DELETED); cm_AdjustScacheLRU(newScp); lock_ReleaseWrite(&newScp->rw); lock_ReleaseWrite(&cm_scacheLock); @@ -910,7 +910,7 @@ long cm_GetSCache(cm_fid_t *fidp, cm_fid_t *parentFidp, cm_scache_t **outScpp, c if (code) { /* put back newScp so it can be reused */ lock_ObtainWrite(&cm_scacheLock); - newScp->flags |= CM_SCACHEFLAG_DELETED; + _InterlockedOr(&newScp->flags, CM_SCACHEFLAG_DELETED); cm_AdjustScacheLRU(newScp); lock_ReleaseWrite(&newScp->rw); lock_ReleaseWrite(&cm_scacheLock); @@ -941,7 +941,7 @@ long cm_GetSCache(cm_fid_t *fidp, cm_fid_t *parentFidp, cm_scache_t **outScpp, c cm_AdjustScacheLRU(scp); /* put back newScp so it can be reused */ - newScp->flags |= CM_SCACHEFLAG_DELETED; + _InterlockedOr(&newScp->flags, CM_SCACHEFLAG_DELETED); cm_AdjustScacheLRU(newScp); lock_ReleaseWrite(&newScp->rw); lock_ReleaseWrite(&cm_scacheLock);