[ros-diffs] [cgutman] 35486: - Reapply r35481

cgutman at svn.reactos.org cgutman at svn.reactos.org
Wed Aug 20 21:06:44 CEST 2008


Author: cgutman
Date: Wed Aug 20 14:06:43 2008
New Revision: 35486

URL: http://svn.reactos.org/svn/reactos?rev=35486&view=rev
Log:
 - Reapply r35481

Modified:
    branches/aicom-network-fixes/drivers/network/afd/afd/listen.c
    branches/aicom-network-fixes/drivers/network/afd/afd/read.c
    branches/aicom-network-fixes/drivers/network/afd/afd/write.c

Modified: branches/aicom-network-fixes/drivers/network/afd/afd/listen.c
URL: http://svn.reactos.org/svn/reactos/branches/aicom-network-fixes/drivers/network/afd/afd/listen.c?rev=35486&r1=35485&r2=35486&view=diff
==============================================================================
--- branches/aicom-network-fixes/drivers/network/afd/afd/listen.c [iso-8859-1] (original)
+++ branches/aicom-network-fixes/drivers/network/afd/afd/listen.c [iso-8859-1] Wed Aug 20 14:06:43 2008
@@ -87,14 +87,14 @@
     PAFD_FCB FCB = (PAFD_FCB)Context;
     PAFD_TDI_OBJECT_QELT Qelt;
 
+    if( Irp->Cancel ) {
+	if( FCB ) FCB->ListenIrp.InFlightRequest = NULL;
+	return STATUS_CANCELLED;
+    }
+
     if( !SocketAcquireStateLock( FCB ) ) return Status;
 
     FCB->ListenIrp.InFlightRequest = NULL;
-
-    if( Irp->Cancel ) {
-	SocketStateUnlock( FCB );
-	return STATUS_SUCCESS;
-    }
 
     if( FCB->State == SOCKET_STATE_CLOSED ) {
 	SocketStateUnlock( FCB );

Modified: branches/aicom-network-fixes/drivers/network/afd/afd/read.c
URL: http://svn.reactos.org/svn/reactos/branches/aicom-network-fixes/drivers/network/afd/afd/read.c?rev=35486&r1=35485&r2=35486&view=diff
==============================================================================
--- branches/aicom-network-fixes/drivers/network/afd/afd/read.c [iso-8859-1] (original)
+++ branches/aicom-network-fixes/drivers/network/afd/afd/read.c [iso-8859-1] Wed Aug 20 14:06:43 2008
@@ -233,6 +233,11 @@
 
     ASSERT_IRQL(APC_LEVEL);
 
+    if( Irp->Cancel ) {
+	if( FCB ) FCB->ReceiveIrp.InFlightRequest = NULL;
+	return STATUS_CANCELLED;
+    }
+
     if( !SocketAcquireStateLock( FCB ) ) return Status;
 
     FCB->ReceiveIrp.InFlightRequest = NULL;
@@ -448,6 +453,11 @@
     UINT DGSize = Irp->IoStatus.Information + sizeof( AFD_STORED_DATAGRAM );
 
     AFD_DbgPrint(MID_TRACE,("Called on %x\n", FCB));
+
+    if( Irp->Cancel ) {
+	if( FCB ) FCB->ReceiveIrp.InFlightRequest = NULL;
+	return STATUS_CANCELLED;
+    }
 
     if( !SocketAcquireStateLock( FCB ) ) return STATUS_FILE_CLOSED;
 

Modified: branches/aicom-network-fixes/drivers/network/afd/afd/write.c
URL: http://svn.reactos.org/svn/reactos/branches/aicom-network-fixes/drivers/network/afd/afd/write.c?rev=35486&r1=35485&r2=35486&view=diff
==============================================================================
--- branches/aicom-network-fixes/drivers/network/afd/afd/write.c [iso-8859-1] (original)
+++ branches/aicom-network-fixes/drivers/network/afd/afd/write.c [iso-8859-1] Wed Aug 20 14:06:43 2008
@@ -40,6 +40,11 @@
 
     ASSERT_IRQL(APC_LEVEL);
 
+    if( Irp->Cancel ) {
+	if( FCB ) FCB->SendIrp.InFlightRequest = NULL;
+	return STATUS_CANCELLED;
+    }
+
     if( !SocketAcquireStateLock( FCB ) ) return Status;
 
     FCB->SendIrp.InFlightRequest = NULL;
@@ -170,6 +175,11 @@
 			    Irp->IoStatus.Status,
 			    Irp->IoStatus.Information));
 
+    if( Irp->Cancel ) {
+	if( FCB ) FCB->SendIrp.InFlightRequest = NULL;
+	return STATUS_CANCELLED;
+    }
+
     /* It's ok if the FCB already died */
     if( !SocketAcquireStateLock( FCB ) ) return STATUS_SUCCESS;
 



More information about the Ros-diffs mailing list