- Add some missing calls to PollReeval
authorCameron Gutman <aicommander@gmail.com>
Sun, 24 Aug 2008 13:56:35 +0000 (13:56 +0000)
committerCameron Gutman <aicommander@gmail.com>
Sun, 24 Aug 2008 13:56:35 +0000 (13:56 +0000)
 - Move an existing PollReeval to always be called

svn path=/branches/aicom-network-fixes/; revision=35597

drivers/network/afd/afd/read.c
drivers/network/afd/afd/write.c

index 15f7b4d..6518328 100644 (file)
@@ -98,6 +98,7 @@ static NTSTATUS TryToSatisfyRecvRequestFromBuffer( PAFD_FCB FCB,
     if( FCB->Recv.BytesUsed == FCB->Recv.Content ) {
        FCB->Recv.BytesUsed = FCB->Recv.Content = 0;
         FCB->PollState &= ~AFD_EVENT_RECEIVE;
+       PollReeval( FCB->DeviceExt, FCB->FileObject );
 
        if( !FCB->ReceiveIrp.InFlightRequest ) {
            AFD_DbgPrint(MID_TRACE,("Replenishing buffer\n"));
index 1efc96e..a6bdd13 100644 (file)
@@ -140,9 +140,10 @@ static NTSTATUS NTAPI SendComplete
        SocketCalloutLeave( FCB );
     } else {
        FCB->PollState |= AFD_EVENT_SEND;
-       PollReeval( FCB->DeviceExt, FCB->FileObject );
     }
 
+    PollReeval( FCB->DeviceExt, FCB->FileObject );
+
     if( TotalBytesCopied > 0 ) {
        UnlockBuffers( SendReq->BufferArray, SendReq->BufferCount, FALSE );
 
@@ -395,6 +396,8 @@ AfdPacketSocketWriteData(PDEVICE_OBJECT DeviceObject, PIRP Irp,
     FCB->EventsFired &= ~AFD_EVENT_SEND;
     FCB->PollState &= ~AFD_EVENT_SEND;
 
+    PollReeval( FCB->DeviceExt, FCB->FileObject );
+
     /* Check that the socket is bound */
     if( FCB->State != SOCKET_STATE_BOUND )
        return UnlockAndMaybeComplete