X-Git-Url: https://git.openafs.org/?p=openafs.git;a=blobdiff_plain;f=src%2FWINNT%2Fafsrdr%2Fkernel%2Flib%2FAFSGeneric.cpp;h=060b3bbf631887f920b66d25b785da1dc03ab3c0;hp=3e85ec239edea37015b97fa4f490025933d63124;hb=9285cc3d5270306377ef3d6f90468129a8cfd376;hpb=559674b36b0f58060e564786b4969ab9e6f777a8 diff --git a/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp b/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp index 3e85ec2..060b3bb 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp @@ -6179,6 +6179,11 @@ AFSFindObjectInfo( IN AFSVolumeCB *VolumeCB, AFSObjectInfoCB *pObjectInfo = NULL; LONG lCount; + ullIndex = AFSCreateLowIndex( FileId); + + AFSAcquireShared( VolumeCB->ObjectInfoTree.TreeLock, + TRUE); + if ( AFSIsEqualFID( &VolumeCB->ObjectInformation.FileId, FileId)) { @@ -6187,16 +6192,9 @@ AFSFindObjectInfo( IN AFSVolumeCB *VolumeCB, else { - AFSAcquireExcl( VolumeCB->ObjectInfoTree.TreeLock, - TRUE); - - ullIndex = AFSCreateLowIndex( FileId); - ntStatus = AFSLocateHashEntry( VolumeCB->ObjectInfoTree.TreeHead, ullIndex, (AFSBTreeEntry **)&pObjectInfo); - - AFSReleaseResource( VolumeCB->ObjectInfoTree.TreeLock); } if ( NT_SUCCESS( ntStatus)) { @@ -6211,6 +6209,8 @@ AFSFindObjectInfo( IN AFSVolumeCB *VolumeCB, lCount)); } + AFSReleaseResource( VolumeCB->ObjectInfoTree.TreeLock); + return pObjectInfo; }