From: Jeffrey Altman Date: Wed, 30 Jan 2008 14:53:44 +0000 (+0000) Subject: windows-ipaddr-change-server-deadlock-20080130 X-Git-Tag: BP-openafs-windows-kdfs-ifs~170 X-Git-Url: https://git.openafs.org/?p=openafs.git;a=commitdiff_plain;h=162cb95707f739170ab4a025a801a430c86ae70a 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) --- diff --git a/src/WINNT/afsd/cm_server.c b/src/WINNT/afsd/cm_server.c index b7d0acc..a64cfed 100644 --- a/src/WINNT/afsd/cm_server.c +++ b/src/WINNT/afsd/cm_server.c @@ -171,8 +171,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);