From: Jeffrey Altman Date: Fri, 16 Aug 2013 16:01:02 +0000 (-0400) Subject: Windows: CM_SCACHEFLAG_DELETED use InterlockedOr X-Git-Tag: upstream/1.8.0_pre1^2~1044 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=0fb1e4762d2e5f04876726f487afeb224dd99140;p=packages%2Fo%2Fopenafs.git Windows: CM_SCACHEFLAG_DELETED use InterlockedOr When setting CM_SCACHEFLAG_DELETED use InterlockedOr. Change-Id: Ie6ccc8e0a167e5bb6a8b74689606166821168989 Reviewed-on: http://gerrit.openafs.org/10140 Tested-by: BuildBot Reviewed-by: Jeffrey Altman --- diff --git a/src/WINNT/afsd/cm_conn.c b/src/WINNT/afsd/cm_conn.c index e14ac0581..0f75e976d 100644 --- a/src/WINNT/afsd/cm_conn.c +++ b/src/WINNT/afsd/cm_conn.c @@ -866,7 +866,7 @@ cm_Analyze(cm_conn_t *connp, pscp = cm_FindSCacheParent(scp); lock_ObtainWrite(&scp->rw); - scp->flags |= CM_SCACHEFLAG_DELETED; + _InterlockedOr(&scp->flags, CM_SCACHEFLAG_DELETED); lock_ObtainWrite(&cm_scacheLock); cm_AdjustScacheLRU(scp); cm_RemoveSCacheFromHashTable(scp); diff --git a/src/WINNT/afsd/cm_vnodeops.c b/src/WINNT/afsd/cm_vnodeops.c index 7e8422c83..62863baf3 100644 --- a/src/WINNT/afsd/cm_vnodeops.c +++ b/src/WINNT/afsd/cm_vnodeops.c @@ -1744,7 +1744,7 @@ long cm_Unlink(cm_scache_t *dscp, fschar_t *fnamep, clientchar_t * cnamep, if (code == 0) { lock_ObtainWrite(&scp->rw); if (--scp->linkCount == 0) { - scp->flags |= CM_SCACHEFLAG_DELETED; + _InterlockedOr(&scp->flags, CM_SCACHEFLAG_DELETED); lock_ObtainWrite(&cm_scacheLock); cm_AdjustScacheLRU(scp); cm_RemoveSCacheFromHashTable(scp); @@ -3751,7 +3751,7 @@ long cm_RemoveDir(cm_scache_t *dscp, fschar_t *fnamep, clientchar_t *cnamep, cm_ if (scp) { if (code == 0) { lock_ObtainWrite(&scp->rw); - scp->flags |= CM_SCACHEFLAG_DELETED; + _InterlockedOr(&scp->flags, CM_SCACHEFLAG_DELETED); lock_ObtainWrite(&cm_scacheLock); cm_AdjustScacheLRU(scp); cm_RemoveSCacheFromHashTable(scp);