Windows: More ObjectInformation RefCnt Protection
[openafs.git] / src / WINNT / afsrdr / kernel / lib / AFSFileInfo.cpp
index 3846237..e604caf 100644 (file)
@@ -3295,6 +3295,14 @@ AFSSetRenameInfo( IN PIRP Irp)
 
             lCount = InterlockedIncrement( &pTargetParentObject->Specific.Directory.ChildOpenReferenceCount);
 
+
+            //
+            // Guaranteed to be in the same volume
+            //
+
+            AFSAcquireExcl( pSrcParentObject->VolumeCB->ObjectInfoTree.TreeLock,
+                            TRUE);
+
             lCount = AFSObjectInfoIncrement( pTargetParentObject,
                                              AFS_OBJECT_REFERENCE_CHILD);
 
@@ -3317,6 +3325,8 @@ AFSSetRenameInfo( IN PIRP Irp)
 
             SetFlag( pSrcFcb->ObjectInformation->Flags, AFS_OBJECT_FLAGS_PARENT_FID);
 
+            AFSReleaseResource( pSrcParentObject->VolumeCB->ObjectInfoTree.TreeLock);
+
             ulNotificationAction = FILE_ACTION_ADDED;
         }
         else