Correct an assertion in vm_pageout_flush(). Specifically, if a page's

status after vm_pager_put_pages() is VM_PAGER_PEND, then it could have
already been recycled, i.e., freed and reallocated to a new purpose;
thus, asserting that such pages cannot be written is inappropriate.

Reported by: kris
Submitted by: tegge
Approved by: re (kensmith)
MFC after: 1 week
This commit is contained in:
Alan Cox 2007-09-15 18:30:28 +00:00
parent 96e2b33657
commit 4cd457233b

View File

@ -447,7 +447,8 @@ vm_pageout_flush(vm_page_t *mc, int count, int flags)
for (i = 0; i < count; i++) {
vm_page_t mt = mc[i];
KASSERT((mt->flags & PG_WRITEABLE) == 0,
KASSERT(pageout_status[i] == VM_PAGER_PEND ||
(mt->flags & PG_WRITEABLE) == 0,
("vm_pageout_flush: page %p is not write protected", mt));
switch (pageout_status[i]) {
case VM_PAGER_OK: