From 5345dbe2ae9c76e9b189e6bd476e67d6d57c2642 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Wed, 6 Aug 2008 22:19:53 +0000 Subject: [PATCH] - Don't check Status so we don't quit looping after the first unsuccessful IRP svn path=/branches/aicom-network-fixes/; revision=35152 --- drivers/network/afd/afd/read.c | 13 +++++++------ drivers/network/afd/afd/write.c | 3 +-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/network/afd/afd/read.c b/drivers/network/afd/afd/read.c index 0775a490340..e9efcb8708a 100644 --- a/drivers/network/afd/afd/read.c +++ b/drivers/network/afd/afd/read.c @@ -168,11 +168,8 @@ static NTSTATUS ReceiveActivity( PAFD_FCB FCB, PIRP Irp ) { 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 @@ PacketSocketRecvComplete( 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 ); diff --git a/drivers/network/afd/afd/write.c b/drivers/network/afd/afd/write.c index df9d3894c48..ac3dffde831 100644 --- a/drivers/network/afd/afd/write.c +++ b/drivers/network/afd/afd/write.c @@ -85,8 +85,7 @@ static NTSTATUS NTAPI SendComplete 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 =