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>
if( pFcb != NULL)
{
+ AFSReleaseResource( pVolumeCB->ObjectInfoTree.TreeLock);
+
AFSCleanupFcb( pFcb,
TRUE);
+ AFSAcquireExcl( pVolumeCB->ObjectInfoTree.TreeLock,
+ TRUE);
+
AFSRemoveFcb( &pFcb);
}
else if( pCurrentObject->Fcb != NULL)
{
+ AFSReleaseResource( pVolumeCB->ObjectInfoTree.TreeLock);
+
AFSCleanupFcb( pCurrentObject->Fcb,
FALSE);
+
+ AFSAcquireShared( pVolumeCB->ObjectInfoTree.TreeLock,
+ TRUE);
}
}