From 8db0ed21814bba3d2eb8c631404316db69ad5490 Mon Sep 17 00:00:00 2001 From: Aleksey Bragin Date: Wed, 30 Jul 2008 13:24:05 +0000 Subject: [PATCH] - Fix Irp flags assignment in case of an IoAllocateIrp call with ChargeQuota set to TRUE. Reduces number of kmtest failures by 1. svn path=/trunk/; revision=34959 --- reactos/ntoskrnl/io/iomgr/irp.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/reactos/ntoskrnl/io/iomgr/irp.c b/reactos/ntoskrnl/io/iomgr/irp.c index 76914551205..b204045d015 100644 --- a/reactos/ntoskrnl/io/iomgr/irp.c +++ b/reactos/ntoskrnl/io/iomgr/irp.c @@ -525,6 +525,9 @@ IoAllocateIrp(IN CCHAR StackSize, PNPAGED_LOOKASIDE_LIST List = NULL; PP_NPAGED_LOOKASIDE_NUMBER ListType = LookasideSmallIrpList; + /* Set Charge Quota Flag */ + if (ChargeQuota) Flags |= IRP_QUOTA_CHARGED; + /* Figure out which Lookaside List to use */ if ((StackSize <= 8) && (ChargeQuota == FALSE)) { @@ -586,11 +589,11 @@ IoAllocateIrp(IN CCHAR StackSize, else { /* We have an IRP from Lookaside */ - Flags |= IRP_LOOKASIDE_ALLOCATION; - } + if (ChargeQuota) Flags |= IRP_LOOKASIDE_ALLOCATION; - /* Set Flag */ - if (ChargeQuota) Flags |= IRP_QUOTA_CHARGED; + /* In this case there is no charge quota */ + Flags &= ~IRP_QUOTA_CHARGED; + } /* Now Initialize it */ IoInitializeIrp(Irp, Size, StackSize);