From 0188378655831f69b6dfe72c699ed262ae4d42f3 Mon Sep 17 00:00:00 2001 From: alc Date: Sat, 15 Sep 2007 18:30:28 +0000 Subject: 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 --- sys/vm/vm_pageout.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'sys/vm/vm_pageout.c') diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c index c46bfe3..7bea8da 100644 --- a/sys/vm/vm_pageout.c +++ b/sys/vm/vm_pageout.c @@ -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: -- cgit v1.1