From f75214282795b23c433b2512b00d24b3e6166b76 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 Change-Id: I64932b0d15b439614b6bbba0ba875eacb1260832 Reviewed-on: http://gerrit.openafs.org/5273 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 49e5fc6a1e..9f372b68d9 100644 --- a/src/WINNT/afsd/cm_conn.c +++ b/src/WINNT/afsd/cm_conn.c @@ -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 ) diff --git a/src/WINNT/afsd/cm_ioctl.c b/src/WINNT/afsd/cm_ioctl.c index 1be93562e2..959200e011 100644 --- a/src/WINNT/afsd/cm_ioctl.c +++ b/src/WINNT/afsd/cm_ioctl.c @@ -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++; } diff --git a/src/WINNT/afsd/cm_user.c b/src/WINNT/afsd/cm_user.c index 7334505c1b..6767b587fe 100644 --- a/src/WINNT/afsd/cm_user.c +++ b/src/WINNT/afsd/cm_user.c @@ -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; } diff --git a/src/WINNT/afsd/smb_ioctl.c b/src/WINNT/afsd/smb_ioctl.c index c225574dd8..3dc9752e7e 100644 --- a/src/WINNT/afsd/smb_ioctl.c +++ b/src/WINNT/afsd/smb_ioctl.c @@ -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)) {