]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
DEVEL15-windows-ipaddr-change-server-deadlock-20080106
authorJeffrey Altman <jaltman@secure-endpoints.com>
Sun, 6 Jan 2008 23:12:59 +0000 (23:12 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Sun, 6 Jan 2008 23:12:59 +0000 (23:12 +0000)
LICENSE MIT

avoid a deadlock during server probes initiated by the ipaddr change
daemon thread.

(cherry picked from commit 049bc4a637334c6e94661a60067ff6a27e5ad481)

src/WINNT/afsd/cm_server.c

index dfc5741aed17465a1c3530833c5020349bb3eb24..cf7dec126c836b3dc2d8b69d800155d53ca5fecb 100644 (file)
@@ -138,8 +138,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);