- Do not complete IRP while likely holding a spinlock

svn path=/trunk/; revision=57519
This commit is contained in:
Thomas Faber 2012-10-08 10:11:42 +00:00
parent ce4ac4fb98
commit a6127a1deb

View file

@ -23,7 +23,6 @@
* all happen at DISPATCH_LEVEL all of the time, so thread switching on a single
* processor can create races too.
*/
/* $Id$ */
#include <ntdef.h>
#undef DECLSPEC_IMPORT
@ -68,11 +67,10 @@ static VOID NTAPI IopCsqCancelRoutine(PDEVICE_OBJECT DeviceObject,
/* Now that we have our CSQ, complete the IRP */
Csq->CsqAcquireLock(Csq, &Irql);
{
Csq->CsqRemoveIrp(Csq, Irp);
Csq->CsqCompleteCanceledIrp(Csq, Irp);
}
Csq->CsqRemoveIrp(Csq, Irp);
Csq->CsqReleaseLock(Csq, Irql);
Csq->CsqCompleteCanceledIrp(Csq, Irp);
}