[NTOS]: Fix a logic error which could cause pages on the free list which failed to be zeroed out due to running out of hyperspace mappings to appear as being on the zero page list even though they were inserted back on the free page list.

svn path=/trunk/; revision=45624
This commit is contained in:
Sir Richard 2010-02-19 18:25:29 +00:00
parent 0eb260e7ea
commit 8f421a2ad0

View file

@ -1000,15 +1000,16 @@ MmZeroPageThreadMain(PVOID Ignored)
Status = MiZeroPage(Pfn);
oldIrql = KeAcquireQueuedSpinLock(LockQueuePfnLock);
PageDescriptor->u3.e1.PageLocation = ZeroedPageList;
if (NT_SUCCESS(Status))
{
InsertHeadList(&FreeZeroedPageListHead, ListEntry);
PageDescriptor->u3.e1.PageLocation = ZeroedPageList;
Count++;
}
else
{
InsertHeadList(&FreeUnzeroedPageListHead, ListEntry);
PageDescriptor->u3.e1.PageLocation = FreePageList;
UnzeroedPageCount++;
}