From: Jeffrey Altman Date: Fri, 3 Feb 2012 16:14:50 +0000 (-0500) Subject: Windows: Do not open file if shutdown in progress X-Git-Tag: upstream/1.8.0_pre1^2~2786 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=4224dc5c281ffc2bf8dd34eadb76762304eece75;p=packages%2Fo%2Fopenafs.git Windows: Do not open file if shutdown in progress Perform the shutdown check earlier in AFSCommonCreate() to prevent a request from being processed after the service indicates that a shutdown has begun. Change-Id: I8959141b5e2161ffe960e93a500b1153d9594a28 Reviewed-on: http://gerrit.openafs.org/6647 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- diff --git a/src/WINNT/afsrdr/kernel/lib/AFSCreate.cpp b/src/WINNT/afsrdr/kernel/lib/AFSCreate.cpp index 08fecc121..c9b14ba2d 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSCreate.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSCreate.cpp @@ -187,6 +187,21 @@ AFSCommonCreate( IN PDEVICE_OBJECT DeviceObject, (ULONGLONG)PsGetCurrentThreadId(), &stAuthGroup); + // + // If we are in shutdown mode then fail the request + // + + if( BooleanFlagOn( pDeviceExt->DeviceFlags, AFS_DEVICE_FLAG_REDIRECTOR_SHUTDOWN)) + { + + AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING, + AFS_TRACE_LEVEL_WARNING, + "AFSCommonCreate (%08lX) Open request after shutdown\n", + Irp); + + try_return( ntStatus = STATUS_TOO_LATE); + } + if( !BooleanFlagOn( AFSGlobalRoot->ObjectInformation.Flags, AFS_OBJECT_FLAGS_DIRECTORY_ENUMERATED)) { @@ -204,21 +219,6 @@ AFSCommonCreate( IN PDEVICE_OBJECT DeviceObject, } } - // - // If we are in shutdown mode then fail the request - // - - if( BooleanFlagOn( pDeviceExt->DeviceFlags, AFS_DEVICE_FLAG_REDIRECTOR_SHUTDOWN)) - { - - AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING, - AFS_TRACE_LEVEL_WARNING, - "AFSCommonCreate (%08lX) Open request after shutdown\n", - Irp); - - try_return( ntStatus = STATUS_TOO_LATE); - } - // // Go and parse the name for processing. // If ulParseFlags is returned with AFS_PARSE_FLAG_FREE_FILE_BUFFER set,