From: Jeffrey Altman Date: Wed, 30 Jan 2008 14:57:37 +0000 (+0000) Subject: DEVEL15-windows-ipaddr-change-server-deadlock-20080130 X-Git-Tag: openafs-devel-1_5_31~57 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=ff80258c243235de676791e86730b4baa4c70f26;p=packages%2Fo%2Fopenafs.git DEVEL15-windows-ipaddr-change-server-deadlock-20080130 LICENSE MIT avoid a deadlock during server probes initiated by the ipaddr change daemon thread. (missed a case in DELTA windows-ipaddr-change-server-deadlock-20080106) (cherry picked from commit 162cb95707f739170ab4a025a801a430c86ae70a) --- diff --git a/src/WINNT/afsd/cm_server.c b/src/WINNT/afsd/cm_server.c index b3e5e5329..7b0314195 100644 --- a/src/WINNT/afsd/cm_server.c +++ b/src/WINNT/afsd/cm_server.c @@ -175,8 +175,10 @@ cm_PingServer(cm_server_t *tsp) if (tsrvp->ids[i] != 0) { cm_InitReq(&req); + lock_ReleaseMutex(&tsp->mx); code = cm_GetVolumeByID(tsp->cellp, tsrvp->ids[i], cm_rootUserp, &req, CM_GETVOL_FLAG_NO_LRU_UPDATE, &volp); + lock_ObtainMutex(&tsp->mx); if (code == 0) { cm_UpdateVolumeStatus(volp, tsrvp->ids[i]); cm_PutVolume(volp);