bNonCachedIo = FALSE;
}
- if ( !bNonCachedIo) {
+ if ( !bNonCachedIo && !bPagingIo)
+ {
- if( !bPagingIo)
+ if( pFileObject->PrivateCacheMap == NULL)
{
- if( pFileObject->PrivateCacheMap == NULL)
- {
-
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
- AFS_TRACE_LEVEL_VERBOSE,
- "AFSCommonWrite Acquiring Fcb SectionObject lock %p EXCL %08lX\n",
- &pNPFcb->SectionObjectResource,
- PsGetCurrentThread());
-
- AFSAcquireExcl( &pNPFcb->SectionObjectResource,
- TRUE);
+ AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSCommonWrite Acquiring Fcb SectionObject lock %p EXCL %08lX\n",
+ &pNPFcb->SectionObjectResource,
+ PsGetCurrentThread());
- bReleaseSectionObject = TRUE;
+ AFSAcquireExcl( &pNPFcb->SectionObjectResource,
+ TRUE);
- __try
- {
+ bReleaseSectionObject = TRUE;
- AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
- AFS_TRACE_LEVEL_VERBOSE,
- "AFSCommonWrite Initialize caching on Fcb %p FileObject %p\n",
- pFcb,
- pFileObject);
+ __try
+ {
- CcInitializeCacheMap( pFileObject,
- (PCC_FILE_SIZES)&pFcb->Header.AllocationSize,
- FALSE,
- AFSLibCacheManagerCallbacks,
- pFcb);
+ AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSCommonWrite Initialize caching on Fcb %p FileObject %p\n",
+ pFcb,
+ pFileObject);
- CcSetReadAheadGranularity( pFileObject,
- pDeviceExt->Specific.RDR.MaximumRPCLength);
+ CcInitializeCacheMap( pFileObject,
+ (PCC_FILE_SIZES)&pFcb->Header.AllocationSize,
+ FALSE,
+ AFSLibCacheManagerCallbacks,
+ pFcb);
- CcSetDirtyPageThreshold( pFileObject,
- AFS_DIRTY_CHUNK_THRESHOLD * pDeviceExt->Specific.RDR.MaximumRPCLength / 4096);
- }
- __except( EXCEPTION_EXECUTE_HANDLER)
- {
+ CcSetReadAheadGranularity( pFileObject,
+ pDeviceExt->Specific.RDR.MaximumRPCLength);
- ntStatus = GetExceptionCode();
+ CcSetDirtyPageThreshold( pFileObject,
+ AFS_DIRTY_CHUNK_THRESHOLD * pDeviceExt->Specific.RDR.MaximumRPCLength / 4096);
+ }
+ __except( EXCEPTION_EXECUTE_HANDLER)
+ {
- AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
- AFS_TRACE_LEVEL_ERROR,
- "AFSCommonWrite (%p) Exception thrown while initializing cache map Status %08lX\n",
- Irp,
- ntStatus);
- }
+ ntStatus = GetExceptionCode();
- AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
- AFS_TRACE_LEVEL_VERBOSE,
- "AFSCommonWrite Releasing Fcb SectionObject lock %p EXCL %08lX\n",
- &pNPFcb->SectionObjectResource,
- PsGetCurrentThread());
+ AFSDbgLogMsg( AFS_SUBSYSTEM_IO_PROCESSING,
+ AFS_TRACE_LEVEL_ERROR,
+ "AFSCommonWrite (%p) Exception thrown while initializing cache map Status %08lX\n",
+ Irp,
+ ntStatus);
+ }
- AFSReleaseResource( &pNPFcb->SectionObjectResource);
+ AFSDbgLogMsg( AFS_SUBSYSTEM_LOCK_PROCESSING,
+ AFS_TRACE_LEVEL_VERBOSE,
+ "AFSCommonWrite Releasing Fcb SectionObject lock %p EXCL %08lX\n",
+ &pNPFcb->SectionObjectResource,
+ PsGetCurrentThread());
- bReleaseSectionObject = FALSE;
+ AFSReleaseResource( &pNPFcb->SectionObjectResource);
+ bReleaseSectionObject = FALSE;
- if( !NT_SUCCESS( ntStatus))
- {
+ if( !NT_SUCCESS( ntStatus))
+ {
- try_return( ntStatus);
- }
+ try_return( ntStatus);
}
}