]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
DEVEL15-windows-lock-order-20080916
authorJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 16 Sep 2008 12:28:20 +0000 (12:28 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 16 Sep 2008 12:28:20 +0000 (12:28 +0000)
LICENSE MIT

do not violate lock order when freeing server reference lists

(cherry picked from commit 414312a72a9b1f0dd64ba3bfe97865dcc8cd80e3)

src/WINNT/afsd/cm_volume.c

index d0dd1d6014af6b9b81ce5fdb68a23b7512a18bf8..5a34d0c32b9be9c8046468f2dac105f192c4e8db 100644 (file)
@@ -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++];