ASSERT( pTargetParentObject == pTargetDirEntry->ObjectInformation->ParentObjectInformation);
- lCount = InterlockedIncrement( &pTargetDirEntry->OpenReferenceCount);
+ lCount = InterlockedIncrement( &pTargetDirEntry->DirOpenReferenceCount);
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSSetFileLinkInfo Increment count on %wZ DE %p Ccb %p Cnt %d\n",
+ &pTargetDirEntry->NameInformation.FileName,
+ pTargetDirEntry,
+ pSrcCcb,
+ lCount);
+
+ ASSERT( lCount >= 0);
if( !pFileLinkInfo->ReplaceIfExists)
{
try_return( ntStatus = STATUS_OBJECT_NAME_COLLISION);
}
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING | AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
AFS_TRACE_LEVEL_ERROR,
"AFSSetFileLinkInfo Target %wZ exists DE %p Count %08lX, performing delete of target\n",
&pTargetDirEntry->NameInformation.FileName,
pTargetDirEntry,
- pTargetDirEntry->OpenReferenceCount);
+ pTargetDirEntry->DirOpenReferenceCount);
//
// Pull the directory entry from the parent
if( pTargetDirEntry != NULL)
{
- lCount = InterlockedDecrement( &pTargetDirEntry->OpenReferenceCount);
+ lCount = InterlockedDecrement( &pTargetDirEntry->DirOpenReferenceCount);
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSSetFileLinkInfo Decrement count on %wZ DE %p Ccb %p Cnt %d\n",
+ &pTargetDirEntry->NameInformation.FileName,
+ pTargetDirEntry,
+ pSrcCcb,
+ lCount);
+
+ ASSERT( lCount >= 0);
}
if( bReleaseTargetDirLock)
ASSERT( pTargetParentObject == pTargetDirEntry->ObjectInformation->ParentObjectInformation);
- lCount = InterlockedIncrement( &pTargetDirEntry->OpenReferenceCount);
+ lCount = InterlockedIncrement( &pTargetDirEntry->DirOpenReferenceCount);
+
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSSetRenameInfo Increment count on %wZ DE %p Ccb %p Cnt %d\n",
+ &pTargetDirEntry->NameInformation.FileName,
+ pTargetDirEntry,
+ pSrcCcb,
+ lCount);
+
+ ASSERT( lCount >= 0);
if( !bReplaceIfExists)
{
try_return( ntStatus = STATUS_OBJECT_NAME_COLLISION);
}
- AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
+ AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING | AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
AFS_TRACE_LEVEL_ERROR,
"AFSSetRenameInfo Target %wZ exists DE %p Count %08lX, performing delete of target\n",
&pTargetDirEntry->NameInformation.FileName,
pTargetDirEntry,
- pTargetDirEntry->OpenReferenceCount);
+ pTargetDirEntry->DirOpenReferenceCount);
//
// Pull the directory entry from the parent
if( pTargetDirEntry->ObjectInformation->FileType == AFS_FILE_TYPE_FILE &&
pTargetDirEntry->ObjectInformation->Fcb != NULL &&
- pTargetDirEntry->OpenReferenceCount > 1)
+ pTargetDirEntry->DirOpenReferenceCount > 1)
{
pTargetFcb = pTargetDirEntry->ObjectInformation->Fcb;
AFSReleaseResource( &pTargetFcb->NPFcb->Resource);
}
- ASSERT( pTargetDirEntry->OpenReferenceCount > 0);
+ ASSERT( pTargetDirEntry->DirOpenReferenceCount > 0);
+
+ lCount = InterlockedDecrement( &pTargetDirEntry->DirOpenReferenceCount); // The count we added above
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSSetRenameInfo Decrement count on %wZ DE %p Ccb %p Cnt %d\n",
+ &pTargetDirEntry->NameInformation.FileName,
+ pTargetDirEntry,
+ pSrcCcb,
+ lCount);
- lCount = InterlockedDecrement( &pTargetDirEntry->OpenReferenceCount); // The count we added above
+ ASSERT( lCount >= 0);
if( lCount == 0)
{
if( pTargetDirEntry != NULL)
{
- lCount = InterlockedDecrement( &pTargetDirEntry->OpenReferenceCount);
+ lCount = InterlockedDecrement( &pTargetDirEntry->DirOpenReferenceCount);
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSSetRenameInfo Decrement2 count on %wZ DE %p Ccb %p Cnt %d\n",
+ &pTargetDirEntry->NameInformation.FileName,
+ pTargetDirEntry,
+ pSrcCcb,
+ lCount);
+
+ ASSERT( lCount >= 0);
}
if( bReleaseTargetDirLock)