From dfd8d6b0c03a4e7221b1bf115a5c0e9e553e161c Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 2 Aug 2008 03:51:17 +0000 Subject: [PATCH] - Fix a bug where Irp->IoStatus wasn't set if Status == STATUS_PENDING svn path=/branches/aicom-network-fixes/; revision=35024 --- drivers/network/afd/afd/lock.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/network/afd/afd/lock.c b/drivers/network/afd/afd/lock.c index 6ecd4f202d3..4036a9c9ee0 100644 --- a/drivers/network/afd/afd/lock.c +++ b/drivers/network/afd/afd/lock.c @@ -237,6 +237,9 @@ NTSTATUS NTAPI UnlockAndMaybeComplete UINT Information, PIO_COMPLETION_ROUTINE Completion ) { + Irp->IoStatus.Status = Status; + Irp->IoStatus.Information = Information; + if( Status == STATUS_PENDING ) { /* We should firstly mark this IRP as pending, because otherwise it may be completed by StreamSocketConnectComplete() @@ -246,8 +249,6 @@ NTSTATUS NTAPI UnlockAndMaybeComplete } else { if ( Irp->MdlAddress ) UnlockRequest( Irp, IoGetCurrentIrpStackLocation( Irp ) ); SocketStateUnlock( FCB ); - Irp->IoStatus.Status = Status; - Irp->IoStatus.Information = Information; if( Completion ) Completion( FCB->DeviceExt->DeviceObject, Irp, FCB ); IoCompleteRequest( Irp, IO_NETWORK_INCREMENT );