AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSCommonCreate Failing access to %wZ\n",
+ "AFSCommonCreate Failing access to %wZ Name not found\n",
&uniFileName);
try_return( ntStatus = STATUS_OBJECT_NAME_NOT_FOUND);
AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_VERBOSE_2,
- "AFSCommonCreate (%p) FileObject %p FsContext %08lX FsContext2 %08lX\n",
+ "AFSCommonCreate (%p) FileObject %p FsContext %p FsContext2 %p\n",
Irp,
pFileObject,
pFcb,
AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSCommonCreate (%p) Returning with NULL Fcb FileObject %p FsContext %08lX FsContext2 %08lX\n",
+ "AFSCommonCreate (%p) Returning with NULL Fcb FileObject %p FsContext %p FsContext2 %p\n",
Irp,
pFileObject,
pFcb,
AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
AFS_TRACE_LEVEL_ERROR,
- "AFSCommonCreate (%p) STATUS_REPARSE FileObject %p FsContext %08lX FsContext2 %08lX\n",
+ "AFSCommonCreate (%p) STATUS_REPARSE FileObject %p FsContext %p FsContext2 %p\n",
Irp,
pFileObject,
pFcb,
TRUE);
}
+ lCount = InterlockedIncrement( &VolumeCB->RootFcb->OpenReferenceCount);
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSOpenRoot Increment count on Fcb %p Cnt %d\n",
+ VolumeCB->RootFcb,
+ lCount);
+
bReleaseFcb = TRUE;
//
// Increment the open count on this Fcb
//
- lCount = InterlockedIncrement( &VolumeCB->RootFcb->OpenReferenceCount);
-
- AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
- AFS_TRACE_LEVEL_VERBOSE,
- "AFSOpenRoot Increment count on Fcb %p Cnt %d\n",
- VolumeCB->RootFcb,
- lCount);
-
lCount = InterlockedIncrement( &VolumeCB->RootFcb->OpenHandleCount);
AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
if( bReleaseFcb)
{
+ if ( !NT_SUCCESS( ntStatus))
+ {
+
+ lCount = InterlockedDecrement( &VolumeCB->RootFcb->OpenReferenceCount);
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSOpenRoot Decrement count on Fcb %p Cnt %d\n",
+ VolumeCB->RootFcb,
+ lCount);
+ }
AFSReleaseResource( VolumeCB->RootFcb->Header.Resource);
}
lCount = InterlockedIncrement( &pObjectInfo->ParentObjectInformation->Specific.Directory.ChildOpenHandleCount);
- AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+ AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSProcessCreate Increment child open handle count on Parent object %p Cnt %d\n",
pObjectInfo->ParentObjectInformation,
AFSReleaseResource( &(*Fcb)->NPFcb->Resource);
}
+ if ( bFileCreated)
+ {
+
+ //
+ // Decrement the reference added during initialization of the DE
+ // AFSInitCcb allocates its own reference count.
+ //
+
+ lCount = InterlockedDecrement( &pDirEntry->DirOpenReferenceCount);
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSProcessCreate Decrement count on %wZ DE %p Cnt %d\n",
+ &pDirEntry->NameInformation.FileName,
+ pDirEntry,
+ lCount);
+
+ ASSERT( lCount >= 0);
+ }
+
if( !NT_SUCCESS( ntStatus))
{
FALSE);
//
- // Decrement the reference added during initialization of the DE
- //
-
- lCount = InterlockedDecrement( &pDirEntry->DirOpenReferenceCount);
-
- AFSDbgLogMsg( AFS_SUBSYSTEM_DIRENTRY_REF_COUNTING,
- AFS_TRACE_LEVEL_VERBOSE,
- "AFSProcessCreate Decrement count on %wZ DE %p Cnt %d\n",
- &pDirEntry->NameInformation.FileName,
- pDirEntry,
- lCount);
-
- ASSERT( lCount >= 0);
-
- //
// Pull the directory entry from the parent
//
lCount = InterlockedIncrement( &pParentObject->ParentObjectInformation->Specific.Directory.ChildOpenHandleCount);
- AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+ AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSOpenTargetDirectory Increment child open handle count on Parent object %p Cnt %d\n",
pParentObject->ParentObjectInformation,
lCount = InterlockedIncrement( &pParentObject->ParentObjectInformation->Specific.Directory.ChildOpenReferenceCount);
- AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+ AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSOpenTargetDirectory Increment child open ref count on Parent object %p Cnt %d\n",
pParentObject->ParentObjectInformation,
lCount = InterlockedIncrement( &pObjectInfo->ParentObjectInformation->Specific.Directory.ChildOpenHandleCount);
- AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+ AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSProcessOpen Increment child open handle count on Parent object %p Cnt %d\n",
pObjectInfo->ParentObjectInformation,
lCount = InterlockedIncrement( &pObjectInfo->ParentObjectInformation->Specific.Directory.ChildOpenReferenceCount);
- AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+ AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSProcessOpen Increment child open ref count on Parent object %p Cnt %d\n",
pObjectInfo->ParentObjectInformation,
lCount = InterlockedIncrement( &pObjectInfo->ParentObjectInformation->Specific.Directory.ChildOpenHandleCount);
- AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+ AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSProcessOverwriteSupersede Increment child open handle count on Parent object %p Cnt %d\n",
pObjectInfo->ParentObjectInformation,
lCount = InterlockedIncrement( &pObjectInfo->ParentObjectInformation->Specific.Directory.ChildOpenReferenceCount);
- AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+ AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSProcessOverwriteSupersede Increment child open ref count on Parent object %p Cnt %d\n",
pObjectInfo->ParentObjectInformation,
lCount = InterlockedIncrement( &pParentObjectInfo->Specific.Directory.ChildOpenHandleCount);
- AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+ AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSOpenIOCtlFcb Increment child open handle count on Parent object %p Cnt %d\n",
pParentObjectInfo,
lCount = InterlockedIncrement( &pParentObjectInfo->Specific.Directory.ChildOpenReferenceCount);
- AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+ AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSOpenIOCtlFcb Increment child open ref count on Parent object %p Cnt %d\n",
pParentObjectInfo,
lCount = InterlockedIncrement( &pParentObjectInfo->Specific.Directory.ChildOpenHandleCount);
- AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+ AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSOpenSpecialShareFcb Increment child open handle count on Parent object %p Cnt %d\n",
pParentObjectInfo,
lCount = InterlockedIncrement( &pParentObjectInfo->Specific.Directory.ChildOpenReferenceCount);
- AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+ AFSDbgLogMsg( AFS_SUBSYSTEM_OBJECT_REF_COUNTING,
AFS_TRACE_LEVEL_VERBOSE,
"AFSOpenSpecialShareFcb Increment child open ref count on Parent object %p Cnt %d\n",
pParentObjectInfo,