From 41ae78c2a9b4d04748d80698b0ee9778194e0f2f Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Sun, 14 Aug 2011 21:41:19 -0400 Subject: [PATCH] Windows: Interlocked ops for cm_user flags Reviewed-on: http://gerrit.openafs.org/5273 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman (cherry picked from commit f75214282795b23c433b2512b00d24b3e6166b76) Change-Id: I092a0d74919b1d8ecf62fbb57c5b957f16184a05 Reviewed-on: http://gerrit.openafs.org/5275 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- src/WINNT/afsd/cm_conn.c | 2 +- src/WINNT/afsd/cm_ioctl.c | 6 +++--- src/WINNT/afsd/cm_user.c | 2 +- src/WINNT/afsd/smb_ioctl.c | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/WINNT/afsd/cm_conn.c b/src/WINNT/afsd/cm_conn.c index 28c8629eb..6a5f17e64 100644 --- a/src/WINNT/afsd/cm_conn.c +++ b/src/WINNT/afsd/cm_conn.c @@ -817,7 +817,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 ) diff --git a/src/WINNT/afsd/cm_ioctl.c b/src/WINNT/afsd/cm_ioctl.c index 6e94b8a38..d2c61f7b7 100644 --- a/src/WINNT/afsd/cm_ioctl.c +++ b/src/WINNT/afsd/cm_ioctl.c @@ -2562,7 +2562,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) { @@ -2787,7 +2787,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); @@ -2821,7 +2821,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++; } diff --git a/src/WINNT/afsd/cm_user.c b/src/WINNT/afsd/cm_user.c index 0af496ee5..508f86eae 100644 --- a/src/WINNT/afsd/cm_user.c +++ b/src/WINNT/afsd/cm_user.c @@ -180,7 +180,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; } diff --git a/src/WINNT/afsd/smb_ioctl.c b/src/WINNT/afsd/smb_ioctl.c index 4de4db4a5..fd76e8e5a 100644 --- a/src/WINNT/afsd/smb_ioctl.c +++ b/src/WINNT/afsd/smb_ioctl.c @@ -1195,7 +1195,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)) { -- 2.39.5