Author: cgutman Date: Wed Aug 6 17:19:53 2008 New Revision: 35152
URL: http://svn.reactos.org/svn/reactos?rev=35152&view=rev Log: - Don't check Status so we don't quit looping after the first unsuccessful IRP
Modified: 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/read.c URL: http://svn.reactos.org/svn/reactos/branches/aicom-network-fixes/drivers/netw... ============================================================================== --- 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 6 17:19:53 2008 @@ -168,11 +168,8 @@ FCB, FCB->Recv.Content)); /*OskitDumpBuffer( FCB->Recv.Window, FCB->Recv.Content );*/
- Status = STATUS_SUCCESS; - /* Try to clear some requests */ - while( !IsListEmpty( &FCB->PendingIrpList[FUNCTION_RECV] ) && - NT_SUCCESS(Status) ) { + while( !IsListEmpty( &FCB->PendingIrpList[FUNCTION_RECV] ) ) { NextIrpEntry = RemoveHeadList(&FCB->PendingIrpList[FUNCTION_RECV]); NextIrp = @@ -476,10 +473,14 @@ InsertTailList( &FCB->DatagramList, &DatagramRecv->ListEntry ); } else Status = STATUS_NO_MEMORY;
+ if( !NT_SUCCESS( Status ) ) { + SocketStateUnlock( FCB ); + return Status; + } + /* Satisfy as many requests as we can */
- while( NT_SUCCESS(Status) && - !IsListEmpty( &FCB->DatagramList ) && + while( !IsListEmpty( &FCB->DatagramList ) && !IsListEmpty( &FCB->PendingIrpList[FUNCTION_RECV] ) ) { AFD_DbgPrint(MID_TRACE,("Looping trying to satisfy request\n")); ListEntry = RemoveHeadList( &FCB->DatagramList );
Modified: branches/aicom-network-fixes/drivers/network/afd/afd/write.c URL: http://svn.reactos.org/svn/reactos/branches/aicom-network-fixes/drivers/netw... ============================================================================== --- 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 6 17:19:53 2008 @@ -85,8 +85,7 @@ FCB->Send.BytesUsed -= Irp->IoStatus.Information;
if( !FCB->Send.BytesUsed && - !IsListEmpty( &FCB->PendingIrpList[FUNCTION_SEND] ) && - NT_SUCCESS(Status) ) { + !IsListEmpty( &FCB->PendingIrpList[FUNCTION_SEND] ) ) { NextIrpEntry = RemoveHeadList(&FCB->PendingIrpList[FUNCTION_SEND]); NextIrp =