Windows: Increase AFS DeviceObject StackSize
authorJeffrey Altman <jaltman@your-file-system.com>
Fri, 15 Mar 2013 15:40:29 +0000 (11:40 -0400)
committerJeffrey Altman <jaltman@your-file-system.com>
Mon, 18 Mar 2013 11:53:12 +0000 (04:53 -0700)
Increase the StackSize parameter of the DeviceObjects allocated
by the AFS Redirector framework.  The StackSize parameter is used
to notify callers how many Irp Stack frames will be consumed.  Now
that the redirector is using IoCompletion routines, an additional
stack frame is required to handle calls to the AFS Redirector library
driver.

Thanks to Peter Scott for identifying the solution.

FIXES 131618

Change-Id: Ib66f884911f0d425e6e07f338a36b3ebedeb8871
Reviewed-on: http://gerrit.openafs.org/9609
Reviewed-by: Peter Scott <pscott@kerneldrivers.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Rod Widdowson <rdw@steadingsoftware.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Tested-by: Jeffrey Altman <jaltman@your-file-system.com>

src/WINNT/afsrdr/kernel/fs/AFSGeneric.cpp
src/WINNT/afsrdr/kernel/fs/AFSRDRSupport.cpp

index a996262..5433480 100644 (file)
@@ -808,6 +808,14 @@ AFSInitializeControlDevice()
         pDeviceExt->Specific.Control.AuthGroupTree.TreeLock = &pDeviceExt->Specific.Control.AuthGroupTreeLock;
 
         pDeviceExt->Specific.Control.AuthGroupTree.TreeHead = NULL;
+
+        //
+        // Increase the StackSize to support the extra stack frame required
+        // for use of IoCompletion routines.
+        //
+
+        AFSDeviceObject->StackSize++;
+
     }
 
     return ntStatus;
index 4fd6172..05372eb 100644 (file)
@@ -132,6 +132,13 @@ AFSInitRDRDevice()
         AFSRDRDeviceObject->Flags &= ~DO_DEVICE_INITIALIZING;
 
         //
+        // Increase the StackSize to support the extra stack frame required
+        // for use of IoCompletion routines.
+        //
+
+        AFSRDRDeviceObject->StackSize++;
+
+        //
         // Register this device with MUP with FilterMgr if Vista or above
         //