Windows: Drop resource across AFSCleanupFcb

Avoid additional deadlocks involving
VolumeCB->ObjectInfoTree.TreeLock.

Change-Id: Ibfeb8f230c54e95d3a0b7b9d84c63cb7f4b9ce2d
Reviewed-on: http://gerrit.openafs.org/6893
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
This commit is contained in:
Jeffrey Altman 2012-03-12 15:53:47 -04:00 committed by Jeffrey Altman
parent 6fb1078e08
commit 317b227a20

View File

@ -1534,9 +1534,14 @@ AFSPrimaryVolumeWorkerThread( IN PVOID Context)
if( pFcb != NULL)
{
AFSReleaseResource( pVolumeCB->ObjectInfoTree.TreeLock);
AFSCleanupFcb( pFcb,
TRUE);
AFSAcquireExcl( pVolumeCB->ObjectInfoTree.TreeLock,
TRUE);
AFSRemoveFcb( &pFcb);
}
@ -1565,8 +1570,13 @@ AFSPrimaryVolumeWorkerThread( IN PVOID Context)
else if( pCurrentObject->Fcb != NULL)
{
AFSReleaseResource( pVolumeCB->ObjectInfoTree.TreeLock);
AFSCleanupFcb( pCurrentObject->Fcb,
FALSE);
AFSAcquireShared( pVolumeCB->ObjectInfoTree.TreeLock,
TRUE);
}
}