From b0bae13aec9acb944d5d6a64c11df857ffc40eb3 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Mon, 24 Dec 2007 05:29:15 +0000 Subject: [PATCH] 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. --- 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 210009a04..f9148c830 100644 --- a/src/WINNT/afsd/cm_callback.c +++ b/src/WINNT/afsd/cm_callback.c @@ -1901,8 +1901,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 b8d029a7e..493016a92 100644 --- a/src/WINNT/afsd/cm_server.c +++ b/src/WINNT/afsd/cm_server.c @@ -129,7 +129,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) { @@ -144,7 +143,6 @@ cm_PingServer(cm_server_t *tsp) } } } - lock_ObtainMutex(&tsp->mx); } } else { /* mark server as down */ @@ -166,7 +164,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) { @@ -181,7 +178,6 @@ cm_PingServer(cm_server_t *tsp) } } } - lock_ObtainMutex(&tsp->mx); } } -- 2.39.5