]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
Windows: Interlocked ops for cm_user flags
authorJeffrey Altman <jaltman@your-file-system.com>
Mon, 15 Aug 2011 01:41:19 +0000 (21:41 -0400)
committerJeffrey Altman <jaltman@openafs.org>
Mon, 15 Aug 2011 02:39:07 +0000 (19:39 -0700)
Change-Id: I64932b0d15b439614b6bbba0ba875eacb1260832
Reviewed-on: http://gerrit.openafs.org/5273
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
src/WINNT/afsd/cm_conn.c
src/WINNT/afsd/cm_ioctl.c
src/WINNT/afsd/cm_user.c
src/WINNT/afsd/smb_ioctl.c

index 49e5fc6a1edb92337cff5ae42c5ec99e42d6d32f..9f372b68d9132c30bcf524bdcc020c2ee09ec660 100644 (file)
@@ -820,7 +820,7 @@ cm_Analyze(cm_conn_t *connp, cm_user_t *userp, cm_req_t *reqp,
                 free(ucellp->ticketp);
                 ucellp->ticketp = NULL;
             }
-            ucellp->flags &= ~CM_UCELLFLAG_RXKAD;
+            _InterlockedAnd(&ucellp->flags, ~CM_UCELLFLAG_RXKAD);
             ucellp->gen++;
             lock_ReleaseMutex(&userp->mx);
             if ( timeLeft > 2 )
index 1be93562e2b4dc36254d5be298599dd1b68d48d5..959200e011e554b63ab543d206ea7b1d5d186597 100644 (file)
@@ -2565,7 +2565,7 @@ cm_IoctlSetToken(struct cm_ioctl *ioctlp, struct cm_user *userp)
        cm_UsernameToId(uname, ucellp, &ucellp->uid);
 #endif
     }
-    ucellp->flags |= CM_UCELLFLAG_RXKAD;
+    _InterlockedOr(&ucellp->flags, CM_UCELLFLAG_RXKAD);
     lock_ReleaseMutex(&userp->mx);
 
     if (flags & PIOCTL_LOGON) {
@@ -2790,7 +2790,7 @@ cm_IoctlDelToken(struct cm_ioctl *ioctlp, struct cm_user *userp)
     ucellp->kvno = 0;
     ucellp->expirationTime = 0;
     ucellp->userName[0] = '\0';
-    ucellp->flags &= ~CM_UCELLFLAG_RXKAD;
+    _InterlockedAnd(&ucellp->flags, ~CM_UCELLFLAG_RXKAD);
     ucellp->gen++;
 
     lock_ReleaseMutex(&userp->mx);
@@ -2824,7 +2824,7 @@ cm_IoctlDelAllToken(struct cm_ioctl *ioctlp, struct cm_user *userp)
        ucellp->kvno = 0;
        ucellp->expirationTime = 0;
        ucellp->userName[0] = '\0';
-        ucellp->flags &= ~CM_UCELLFLAG_RXKAD;
+        _InterlockedAnd(&ucellp->flags, ~CM_UCELLFLAG_RXKAD);
         ucellp->gen++;
     }
 
index 7334505c1bbed7809446c9c089be5990be03a9af..6767b587febb5326194026efb1042d503b5b8486 100644 (file)
@@ -184,7 +184,7 @@ void cm_CheckTokenCache(time_t now)
                             free(ucellp->ticketp);
                             ucellp->ticketp = NULL;
                         }
-                        ucellp->flags &= ~CM_UCELLFLAG_RXKAD;
+                        _InterlockedAnd(&ucellp->flags, ~CM_UCELLFLAG_RXKAD);
                         ucellp->gen++;
                         bExpired=TRUE;
                     }
index c225574dd872f57de030dd8db35f249d181fdad3..3dc9752e7e99ea2192d22436630c959082a57751 100644 (file)
@@ -1198,7 +1198,7 @@ smb_IoctlSetToken(struct smb_ioctl *ioctlp, struct cm_user *userp, afs_uint32 pf
        cm_UsernameToId(uname, ucellp, &ucellp->uid);
 #endif
     }
-    ucellp->flags |= CM_UCELLFLAG_RXKAD;
+    _InterlockedOr(&ucellp->flags, CM_UCELLFLAG_RXKAD);
     lock_ReleaseMutex(&userp->mx);
 
     if ((pflags & AFSCALL_FLAG_LOCAL_SYSTEM) && (flags & PIOCTL_LOGON)) {