From a6037b153d78791d68b694a487456fbb52e410d0 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Sat, 13 Apr 2013 01:56:39 -0400 Subject: [PATCH] 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 --- src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp b/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp index 42770e6ac..3bed1dccf 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; -- 2.39.5