From efb0e9ebd8e6a329a227e1a06d589ab6b28bc801 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Mon, 24 Dec 2007 05:30:37 +0000 Subject: [PATCH] DEVEL15-windows-hold-server-mutex-for-vol-list-20071223 LICENSE MIT When walking or modifying the cm_server_vols_t associated with a given cm_server_t the mutex must be held. Otherwise, races can occur. (cherry picked from commit b0bae13aec9acb944d5d6a64c11df857ffc40eb3) --- src/WINNT/afsd/cm_callback.c | 3 +-- src/WINNT/afsd/cm_server.c | 4 ---- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/src/WINNT/afsd/cm_callback.c b/src/WINNT/afsd/cm_callback.c index 0e8cfb3cf..e738d1b5b 100644 --- a/src/WINNT/afsd/cm_callback.c +++ b/src/WINNT/afsd/cm_callback.c @@ -1905,8 +1905,6 @@ cm_GiveUpAllCallbacks(cm_server_t *tsp, afs_int32 markDown) tsp->downTime = osi_Time(); } cm_ForceNewConnections(tsp); - lock_ReleaseMutex(&tsp->mx); - /* Now update the volume status */ for (tsrvp = tsp->vols; tsrvp; tsrvp = tsrvp->nextp) { for (i=0; imx); } } } diff --git a/src/WINNT/afsd/cm_server.c b/src/WINNT/afsd/cm_server.c index 67d5c75e0..dfc5741ae 100644 --- a/src/WINNT/afsd/cm_server.c +++ b/src/WINNT/afsd/cm_server.c @@ -133,7 +133,6 @@ cm_PingServer(cm_server_t *tsp) cm_volume_t * volp; int i; - lock_ReleaseMutex(&tsp->mx); for (tsrvp = tsp->vols; tsrvp; tsrvp = tsrvp->nextp) { for (i=0; iids[i] != 0) { @@ -148,7 +147,6 @@ cm_PingServer(cm_server_t *tsp) } } } - lock_ObtainMutex(&tsp->mx); } } else { /* mark server as down */ @@ -170,7 +168,6 @@ cm_PingServer(cm_server_t *tsp) cm_volume_t * volp; int i; - lock_ReleaseMutex(&tsp->mx); for (tsrvp = tsp->vols; tsrvp; tsrvp = tsrvp->nextp) { for (i=0; iids[i] != 0) { @@ -185,7 +182,6 @@ cm_PingServer(cm_server_t *tsp) } } } - lock_ObtainMutex(&tsp->mx); } } -- 2.39.5