From 23b2990d3585286c0d1db30f8b5b3456e80f0539 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Tue, 26 Aug 2008 05:38:44 +0000 Subject: [PATCH] DEVEL15-windows-misc-20080825 LICENSE MIT avoid a deadlock in cm_GiveUpAllCallbacks log UAEEXIST / EEXIST in cm_Analyze (cherry picked from commit e0380d54bad50582b6bc39e2b41e78d72117ec79) --- src/WINNT/afsd/cm_callback.c | 4 ++-- src/WINNT/afsd/cm_conn.c | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/WINNT/afsd/cm_callback.c b/src/WINNT/afsd/cm_callback.c index 809845a90..3d0941b6e 100644 --- a/src/WINNT/afsd/cm_callback.c +++ b/src/WINNT/afsd/cm_callback.c @@ -1949,13 +1949,13 @@ cm_GiveUpAllCallbacks(cm_server_t *tsp, afs_int32 markDown) cm_volume_t * volp; int i; + cm_ForceNewConnections(tsp); + lock_ObtainMutex(&tsp->mx); if (!(tsp->flags & CM_SERVERFLAG_DOWN)) { tsp->flags |= CM_SERVERFLAG_DOWN; tsp->downTime = time(NULL); } - cm_ForceNewConnections(tsp); - /* Now update the volume status */ for (tsrvp = tsp->vols; tsrvp; tsrvp = tsrvp->nextp) { for (i=0; i