From: Jeffrey Altman Date: Sun, 6 Jan 2008 23:11:01 +0000 (+0000) Subject: windows-ipaddr-change-server-deadlock-20080106 X-Git-Tag: BP-openafs-windows-kdfs-ifs~229 X-Git-Url: https://git.openafs.org/?p=openafs.git;a=commitdiff_plain;h=049bc4a637334c6e94661a60067ff6a27e5ad481 windows-ipaddr-change-server-deadlock-20080106 LICENSE MIT avoid a deadlock during server probes initiated by the ipaddr change daemon thread. --- diff --git a/src/WINNT/afsd/cm_server.c b/src/WINNT/afsd/cm_server.c index 493016a..efefdf5 100644 --- a/src/WINNT/afsd/cm_server.c +++ b/src/WINNT/afsd/cm_server.c @@ -134,8 +134,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);