From 00e86a5f7b0b59f2b9f27c767f04eefe2a736346 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Tue, 16 Sep 2008 12:28:20 +0000 Subject: [PATCH] DEVEL15-windows-lock-order-20080916 LICENSE MIT do not violate lock order when freeing server reference lists (cherry picked from commit 414312a72a9b1f0dd64ba3bfe97865dcc8cd80e3) --- src/WINNT/afsd/cm_volume.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/WINNT/afsd/cm_volume.c b/src/WINNT/afsd/cm_volume.c index d0dd1d601..5a34d0c32 100644 --- a/src/WINNT/afsd/cm_volume.c +++ b/src/WINNT/afsd/cm_volume.c @@ -856,7 +856,9 @@ long cm_FindVolumeByName(struct cm_cell *cellp, char *volumeNamep, cm_VolumeStatusNotification(volp, volp->vol[volType].ID, volp->vol[volType].state, vl_unknown); volp->vol[volType].ID = 0; cm_SetFid(&volp->vol[volType].dotdotFid, 0, 0, 0, 0); + lock_ReleaseWrite(&cm_volumeLock); cm_FreeServerList(&volp->vol[volType].serversp, CM_FREESERVERLIST_DELETE); + lock_ObtainWrite(&cm_volumeLock); } } else { volp = &cm_data.volumeBaseAddress[cm_data.currentVolumes++]; -- 2.39.5