From 07f38d007df03ba8a237bf6b357ea2e95dbcea16 Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Sun, 10 May 2015 20:56:48 +0000 Subject: [PATCH] [NTFS] - Only set the IOSB status if we complete the IRP - Fix the assert: the caller might want not to complete the IRP nor to queue it (passed down IRPs) svn path=/trunk/; revision=67636 --- reactos/drivers/filesystems/ntfs/dispatch.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/reactos/drivers/filesystems/ntfs/dispatch.c b/reactos/drivers/filesystems/ntfs/dispatch.c index 0f53c629109..ebba60e052f 100644 --- a/reactos/drivers/filesystems/ntfs/dispatch.c +++ b/reactos/drivers/filesystems/ntfs/dispatch.c @@ -85,13 +85,17 @@ NtfsFsdDispatch(PDEVICE_OBJECT DeviceObject, else Status = STATUS_INSUFFICIENT_RESOURCES; - ASSERT(((IrpContext->Flags & IRPCONTEXT_COMPLETE) && !(IrpContext->Flags & IRPCONTEXT_QUEUE)) || + ASSERT((!(IrpContext->Flags & IRPCONTEXT_COMPLETE) && !(IrpContext->Flags & IRPCONTEXT_QUEUE)) || + ((IrpContext->Flags & IRPCONTEXT_COMPLETE) && !(IrpContext->Flags & IRPCONTEXT_QUEUE)) || (!(IrpContext->Flags & IRPCONTEXT_COMPLETE) && (IrpContext->Flags & IRPCONTEXT_QUEUE))); - Irp->IoStatus.Status = Status; + if (IrpContext->Flags & IRPCONTEXT_COMPLETE) + { + Irp->IoStatus.Status = Status; IoCompleteRequest(Irp, IrpContext->PriorityBoost); + } if (IrpContext) ExFreePoolWithTag(IrpContext, 'PRIN');