From c74a23fc4043e28a138fe624b1aadf3af1ee8f6f Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Wed, 13 Jun 2007 07:04:55 +0000 Subject: [PATCH] windows-server-ping-deadlock-20070612 avoid deadlock in cm_ServerPing due to volume status update code --- src/WINNT/afsd/cm_server.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/WINNT/afsd/cm_server.c b/src/WINNT/afsd/cm_server.c index b64cab594..be93b1e39 100644 --- a/src/WINNT/afsd/cm_server.c +++ b/src/WINNT/afsd/cm_server.c @@ -127,6 +127,7 @@ 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) { @@ -141,6 +142,7 @@ cm_PingServer(cm_server_t *tsp) } } } + lock_ObtainMutex(&tsp->mx); } } else { /* mark server as down */ @@ -159,6 +161,7 @@ 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) { @@ -173,6 +176,7 @@ cm_PingServer(cm_server_t *tsp) } } } + lock_ObtainMutex(&tsp->mx); } } -- 2.39.5