From: Jeffrey Altman Date: Sat, 13 Apr 2013 05:56:39 +0000 (-0400) Subject: Windows: AFSPerformObjectInvalidate hold TreeLock X-Git-Tag: openafs-stable-1_8_0pre1~1202 X-Git-Url: http://git.openafs.org/?p=openafs.git;a=commitdiff_plain;h=a6037b153d78791d68b694a487456fbb52e410d0 Windows: AFSPerformObjectInvalidate hold TreeLock When decrementing the ObjectInfoCB reference count hold the Volume's ObjectInfoTree.TreeLock shared. Change-Id: I6ac2fe3cc19bcc97a2a6e38f2e1a4b3d0952b304 Reviewed-on: http://gerrit.openafs.org/9785 Reviewed-by: Rod Widdowson Tested-by: BuildBot Reviewed-by: Jeffrey Altman --- diff --git a/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp b/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp index 42770e6..3bed1dc 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp @@ -9468,6 +9468,9 @@ AFSPerformObjectInvalidate( IN AFSObjectInfoCB *ObjectInfo, // or AFSQueueInvalidateObject // + AFSAcquireShared( ObjectInfo->VolumeCB->ObjectInfoTree.TreeLock, + TRUE); + lCount = AFSObjectInfoDecrement( ObjectInfo, AFS_OBJECT_REFERENCE_INVALIDATION); @@ -9476,6 +9479,8 @@ AFSPerformObjectInvalidate( IN AFSObjectInfoCB *ObjectInfo, "AFSPerformObjectInvalidation Decrement count on object %p Cnt %d\n", ObjectInfo, lCount)); + + AFSReleaseResource( ObjectInfo->VolumeCB->ObjectInfoTree.TreeLock); } return ntStatus;