Windows: CM_SCACHEFLAG_DELETED use InterlockedOr
[openafs.git] / src / WINNT / afsd / cm_vnodeops.c
index 7e8422c..62863ba 100644 (file)
@@ -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);