Merge 16858 from trunk: Properly propagate the SL_PENDING_RETURNED flag to stack locations in IofCompleteRequest and fix the priority boost for master IRPs. Modified: branches/ros-branch-0_2_7/reactos/ntoskrnl/io/irp.c _____
Modified: branches/ros-branch-0_2_7/reactos/ntoskrnl/io/irp.c --- branches/ros-branch-0_2_7/reactos/ntoskrnl/io/irp.c 2005-08-03 17:17:57 UTC (rev 17019) +++ branches/ros-branch-0_2_7/reactos/ntoskrnl/io/irp.c 2005-08-03 17:18:54 UTC (rev 17020) @@ -1158,10 +1158,7 @@
{ if ((Irp->CurrentLocation <= Irp->StackCount) && (Irp->PendingReturned)) { - if (IoGetCurrentIrpStackLocation(Irp)->Control & SL_PENDING_RETURNED) - { - Irp->PendingReturned = TRUE; - } + IoMarkIrpPending(Irp); } }
@@ -1191,7 +1188,7 @@ IoFreeIrp(Irp);
/* Complete the Master IRP */ - if (!MasterIrpCount) IofCompleteRequest(MasterIrp, IO_NO_INCREMENT); + if (!MasterIrpCount) IofCompleteRequest(MasterIrp, PriorityBoost); return; }
@@ -1219,12 +1216,10 @@ } else { - DPRINT1("BUG BUG, YOU SHOULDNT BE HERE\n"); - #if 0 +#if 0 /* Page 166 */ - /* When we'll actually support Async Paging I/O Properly... */ KeInitializeApc(&Irp->Tail.Apc - &Irp->tail.Overlay.Thread->Tcb, + &Irp->Tail.Overlay.Thread->Tcb, Irp->ApcEnvironment, IopCompletePageWrite, NULL, @@ -1235,7 +1230,10 @@ NULL, NULL, PriorityBoost); - #endif +#else + /* Not implemented yet. */ + ASSERT(FALSE); +#endif } return; }