If the ParentObjectInformation and TargetParentObjectInformation
are different, the TreeLock for each must be held.
Change-Id: Iac9910d838f8f35b286e4e40009cfd547ed8a438
Reviewed-on: http://gerrit.openafs.org/8479
Reviewed-by: Rod Widdowson <rdw@steadingsoftware.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
if ( ParentObjectInfo != TargetParentObjectInfo)
{
+ AFSAcquireExcl( TargetParentObjectInfo->Specific.Directory.DirectoryNodeHdr.TreeLock,
+ TRUE);
+
if ( TargetParentObjectInfo->DataVersion.QuadPart == pRenameResultCB->TargetParentDataVersion.QuadPart - 1)
{
DirectoryCB->Type.Data.ShortNameTreeEntry.HashIndex = 0;
}
+ if ( ParentObjectInfo != TargetParentObjectInfo)
+ {
+
+ AFSReleaseResource( TargetParentObjectInfo->Specific.Directory.DirectoryNodeHdr.TreeLock);
+ }
+
AFSReleaseResource( ParentObjectInfo->Specific.Directory.DirectoryNodeHdr.TreeLock);
if( UpdatedFID != NULL)