From: Jeffrey Altman Date: Thu, 27 Oct 2011 21:57:25 +0000 (-0400) Subject: Windows: only flush buffers on shutdown if running X-Git-Tag: upstream/1.6.1.pre1^2~105 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=d27d549d02f628a1c4b88bcf8d1f8d5878174b58;p=packages%2Fo%2Fopenafs.git Windows: only flush buffers on shutdown if running If a service shutdown message is received prior to the service entering the running state, do not attempt to buf_CleanAndReset() because the required data structures and locks are not initialized. Reviewed-on: http://gerrit.openafs.org/5733 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman (cherry picked from commit 9743f5729d1a55513e861bb1334599a8e597de6b) Change-Id: I2bda1c4a538c83595f2d60ad4661c7e6865c5fc3 Reviewed-on: http://gerrit.openafs.org/6041 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- diff --git a/src/WINNT/afsd/afsd_service.c b/src/WINNT/afsd/afsd_service.c index 016848c59..ab6cdef25 100644 --- a/src/WINNT/afsd/afsd_service.c +++ b/src/WINNT/afsd/afsd_service.c @@ -244,6 +244,7 @@ afsd_ServiceControlHandlerEx( long code; DWORD dwRet = ERROR_CALL_NOT_IMPLEMENTED; OSVERSIONINFO osVersion; + DWORD dwCurrentState = ServiceStatus.dwCurrentState; /* Get the version of Windows */ memset(&osVersion, 0x00, sizeof(osVersion)); @@ -267,7 +268,8 @@ afsd_ServiceControlHandlerEx( SetServiceStatus(StatusHandle, &ServiceStatus); /* Write all dirty buffers back to server */ - if ( !lana_OnlyLoopback() ) + if (dwCurrentState == SERVICE_RUNNING && + !lana_OnlyLoopback() ) buf_CleanAndReset(); /* Force trace if requested */