From 0fb1e4762d2e5f04876726f487afeb224dd99140 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Fri, 16 Aug 2013 12:01:02 -0400 Subject: [PATCH] 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 --- src/WINNT/afsd/cm_conn.c | 2 +- src/WINNT/afsd/cm_vnodeops.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/WINNT/afsd/cm_conn.c b/src/WINNT/afsd/cm_conn.c index e14ac05..0f75e97 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 7e8422c..62863ba 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); -- 1.9.4