*Fcb = pObjectInfo->Fcb;
- if( !NT_SUCCESS( ntStatus) &&
- ntStatus != STATUS_REPARSE)
+ if( !NT_SUCCESS( ntStatus))
{
AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
ntStatus = STATUS_SUCCESS;
}
+ //
+ // Increment the open count on this Fcb
+ //
+
+ lCount = InterlockedIncrement( &(*Fcb)->OpenReferenceCount);
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSProcessCreate Increment count on Fcb %08lX Cnt %d\n",
+ *Fcb,
+ lCount);
+
bReleaseFcb = TRUE;
//
pFileObject,
&(*Fcb)->ShareAccess);
- //
- // Increment the open count on this Fcb
- //
-
- lCount = InterlockedIncrement( &(*Fcb)->OpenReferenceCount);
-
- AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
- AFS_TRACE_LEVEL_VERBOSE,
- "AFSProcessCreate Increment count on Fcb %08lX Cnt %d\n",
- *Fcb,
- lCount);
-
lCount = InterlockedIncrement( &(*Fcb)->OpenHandleCount);
AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
if( bReleaseFcb)
{
+ if( !NT_SUCCESS( ntStatus))
+ {
+ //
+ // Decrement the open count on this Fcb
+ //
+
+ lCount = InterlockedDecrement( &(*Fcb)->OpenReferenceCount);
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSProcessCreate Decrement count on Fcb %08lX Cnt %d\n",
+ *Fcb,
+ lCount);
+ }
+
AFSReleaseResource( &(*Fcb)->NPFcb->Resource);
}
*Fcb = pParentObject->Fcb;
- if( !NT_SUCCESS( ntStatus) &&
- ntStatus != STATUS_REPARSE)
+ if( !NT_SUCCESS( ntStatus))
{
AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
ntStatus = STATUS_SUCCESS;
}
+ //
+ // Increment the open count on this Fcb
+ //
+
+ lCount = InterlockedIncrement( &pParentObject->Fcb->OpenReferenceCount);
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSOpenTargetDirectory Increment count on Fcb %08lX Cnt %d\n",
+ pParentObject->Fcb,
+ lCount);
+
bReleaseFcb = TRUE;
//
&pParentObject->Fcb->ShareAccess);
}
- //
- // Increment the open count on this Fcb
- //
-
- lCount = InterlockedIncrement( &pParentObject->Fcb->OpenReferenceCount);
-
- AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
- AFS_TRACE_LEVEL_VERBOSE,
- "AFSOpenTargetDirectory Increment count on Fcb %08lX Cnt %d\n",
- pParentObject->Fcb,
- lCount);
-
lCount = InterlockedIncrement( &pParentObject->Fcb->OpenHandleCount);
AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
if( bReleaseFcb)
{
+ if( !NT_SUCCESS( ntStatus))
+ {
+ //
+ // Decrement the open count on this Fcb
+ //
+
+ lCount = InterlockedDecrement( &pParentObject->Fcb->OpenReferenceCount);
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSOpenTargetDirectory Decrement count on Fcb %08lX Cnt %d\n",
+ pParentObject->Fcb,
+ lCount);
+ }
+
AFSReleaseResource( &pParentObject->Fcb->NPFcb->Resource);
}
ntStatus = AFSInitFcb( DirectoryCB);
- if( !NT_SUCCESS( ntStatus) &&
- ntStatus != STATUS_REPARSE)
+ if( !NT_SUCCESS( ntStatus))
{
AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
TRUE);
}
- bReleaseFcb = TRUE;
-
//
- // Reference the Fcb so it won't go away while we call into the service for processing
+ // Increment the open count on this Fcb
//
lCount = InterlockedIncrement( &pObjectInfo->Fcb->OpenReferenceCount);
AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSProcessOpen Increment count on Fcb %08lX Cnt %d\n",
+ "AFSProcessOpen Increment2 count on Fcb %08lX Cnt %d\n",
pObjectInfo->Fcb,
lCount);
+ bReleaseFcb = TRUE;
+
//
// Check access on the entry
//
&pObjectInfo->Fcb->ShareAccess);
}
- //
- // Increment the open count on this Fcb
- //
-
- lCount = InterlockedIncrement( &pObjectInfo->Fcb->OpenReferenceCount);
-
- AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
- AFS_TRACE_LEVEL_VERBOSE,
- "AFSProcessOpen Increment2 count on Fcb %08lX Cnt %d\n",
- pObjectInfo->Fcb,
- lCount);
-
lCount = InterlockedIncrement( &pObjectInfo->Fcb->OpenHandleCount);
AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
if( bReleaseFcb)
{
- //
- // Remove the reference we added initially
- //
+ if( !NT_SUCCESS( ntStatus))
+ {
+ //
+ // Decrement the open count on this Fcb
+ //
- lCount = InterlockedDecrement( &pObjectInfo->Fcb->OpenReferenceCount);
+ lCount = InterlockedDecrement( &pObjectInfo->Fcb->OpenReferenceCount);
- AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
- AFS_TRACE_LEVEL_VERBOSE,
- "AFSProcessOpen Decrement count on Fcb %08lX Cnt %d\n",
- pObjectInfo->Fcb,
- lCount);
+ AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSProcessOpen Decrement2 count on Fcb %08lX Cnt %d\n",
+ pObjectInfo->Fcb,
+ lCount);
+ }
AFSReleaseResource( pObjectInfo->Fcb->Header.Resource);
}
*Fcb = pObjectInfo->Fcb;
- if( !NT_SUCCESS( ntStatus) &&
- ntStatus != STATUS_REPARSE)
+ if( !NT_SUCCESS( ntStatus))
{
AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
TRUE);
}
- bReleaseFcb = TRUE;
-
//
- // Reference the Fcb so it won't go away while processing the request
+ // Increment the open count on this Fcb.
//
lCount = InterlockedIncrement( &pObjectInfo->Fcb->OpenReferenceCount);
AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
AFS_TRACE_LEVEL_VERBOSE,
- "AFSProcessOverwriteSupersede Increment count on Fcb %08lX Cnt %d\n",
+ "AFSProcessOverwriteSupersede Increment2 count on Fcb %08lX Cnt %d\n",
pObjectInfo->Fcb,
lCount);
+ bReleaseFcb = TRUE;
+
//
// Check access on the entry
//
Irp->IoStatus.Information = FILE_OVERWRITTEN;
}
- //
- // Increment the open count on this Fcb.
- //
-
- lCount = InterlockedIncrement( &pObjectInfo->Fcb->OpenReferenceCount);
-
- AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
- AFS_TRACE_LEVEL_VERBOSE,
- "AFSProcessOverwriteSupersede Increment2 count on Fcb %08lX Cnt %d\n",
- pObjectInfo->Fcb,
- lCount);
-
lCount = InterlockedIncrement( &pObjectInfo->Fcb->OpenHandleCount);
AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
if( bReleaseFcb)
{
- //
- // Remove the reference we added above to prevent tear down
- //
+ if( !NT_SUCCESS( ntStatus))
+ {
+ //
+ // Decrement the open count on this Fcb.
+ //
- lCount = InterlockedDecrement( &pObjectInfo->Fcb->OpenReferenceCount);
+ lCount = InterlockedDecrement( &pObjectInfo->Fcb->OpenReferenceCount);
- AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
- AFS_TRACE_LEVEL_VERBOSE,
- "AFSProcessOverwriteSupersede Decrement count on Fcb %08lX Cnt %d\n",
- pObjectInfo->Fcb,
- lCount);
+ AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSProcessOverwriteSupersede Decrement2 count on Fcb %08lX Cnt %d\n",
+ pObjectInfo->Fcb,
+ lCount);
+ }
AFSReleaseResource( pObjectInfo->Fcb->Header.Resource);
}
*Fcb = pParentObjectInfo->Specific.Directory.PIOCtlDirectoryCB->ObjectInformation->Fcb;
- if( !NT_SUCCESS( ntStatus) &&
- ntStatus != STATUS_REPARSE)
+ if( !NT_SUCCESS( ntStatus))
{
AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
TRUE);
}
+ //
+ // Increment the open reference and handle on the node
+ //
+
+ lCount = InterlockedIncrement( &(*Fcb)->OpenReferenceCount);
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSOpenIOCtlFcb Increment count on Fcb %08lX Cnt %d\n",
+ (*Fcb),
+ lCount);
+
bReleaseFcb = TRUE;
//
lCount);
//
- // Increment the open reference and handle on the node
+ // Increment the handle on the node
//
- lCount = InterlockedIncrement( &(*Fcb)->OpenReferenceCount);
-
- AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
- AFS_TRACE_LEVEL_VERBOSE,
- "AFSOpenIOCtlFcb Increment count on Fcb %08lX Cnt %d\n",
- (*Fcb),
- lCount);
-
lCount = InterlockedIncrement( &(*Fcb)->OpenHandleCount);
AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
if( bReleaseFcb)
{
+ if( !NT_SUCCESS( ntStatus))
+ {
+ //
+ // Decrement the open reference and handle on the node
+ //
+
+ lCount = InterlockedDecrement( &(*Fcb)->OpenReferenceCount);
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSOpenIOCtlFcb Decrement count on Fcb %08lX Cnt %d\n",
+ (*Fcb),
+ lCount);
+ }
+
AFSReleaseResource( &(*Fcb)->NPFcb->Resource);
}
*Fcb = DirectoryCB->ObjectInformation->Fcb;
- if( !NT_SUCCESS( ntStatus) &&
- ntStatus != STATUS_REPARSE)
+ if( !NT_SUCCESS( ntStatus))
{
AFSDbgLogMsg( AFS_SUBSYSTEM_PIPE_PROCESSING,
TRUE);
}
+ //
+ // Increment the open count on this Fcb
+ //
+
+ lCount = InterlockedIncrement( &(*Fcb)->OpenReferenceCount);
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSOpenSpecialShareFcb Increment count on Fcb %08lX Cnt %d\n",
+ (*Fcb),
+ lCount);
+
bReleaseFcb = TRUE;
//
try_return( ntStatus);
}
- //
- // Increment the open count on this Fcb
- //
-
- lCount = InterlockedIncrement( &(*Fcb)->OpenReferenceCount);
-
- AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
- AFS_TRACE_LEVEL_VERBOSE,
- "AFSOpenSpecialShareFcb Increment count on Fcb %08lX Cnt %d\n",
- (*Fcb),
- lCount);
-
lCount = InterlockedIncrement( &(*Fcb)->OpenHandleCount);
AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
if( bReleaseFcb)
{
+ if( !NT_SUCCESS( ntStatus))
+ {
+ //
+ // Decrement the open count on this Fcb
+ //
+
+ lCount = InterlockedDecrement( &(*Fcb)->OpenReferenceCount);
+
+ AFSDbgLogMsg( AFS_SUBSYSTEM_FCB_REF_COUNTING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSOpenSpecialShareFcb Decrement count on Fcb %08lX Cnt %d\n",
+ (*Fcb),
+ lCount);
+ }
+
AFSReleaseResource( &(*Fcb)->NPFcb->Resource);
}