mirror of
https://github.com/freebsd/freebsd-src
synced 2024-09-20 08:44:33 +00:00
Have vm_page_replace() assert that the new page is not enqueued.
The new page does not belong to a VM object, but the page daemon does not expect to encounter such pages. Reviewed by: alc, kib Tested by: pho MFC after: 1 week X-Differential Revision: https://reviews.freebsd.org/D14625
This commit is contained in:
parent
d09cfd2724
commit
434862acb1
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=331128
|
@ -1505,7 +1505,9 @@ vm_page_replace(vm_page_t mnew, vm_object_t object, vm_pindex_t pindex)
|
|||
|
||||
VM_OBJECT_ASSERT_WLOCKED(object);
|
||||
KASSERT(mnew->object == NULL,
|
||||
("vm_page_replace: page already in object"));
|
||||
("vm_page_replace: page %p already in object", mnew));
|
||||
KASSERT(mnew->queue == PQ_NONE,
|
||||
("vm_page_replace: new page %p is on a paging queue", mnew));
|
||||
|
||||
/*
|
||||
* This function mostly follows vm_page_insert() and
|
||||
|
@ -1517,7 +1519,7 @@ vm_page_replace(vm_page_t mnew, vm_object_t object, vm_pindex_t pindex)
|
|||
mnew->pindex = pindex;
|
||||
mold = vm_radix_replace(&object->rtree, mnew);
|
||||
KASSERT(mold->queue == PQ_NONE,
|
||||
("vm_page_replace: mold is on a paging queue"));
|
||||
("vm_page_replace: old page %p is on a paging queue", mold));
|
||||
|
||||
/* Keep the resident page list in sorted order. */
|
||||
TAILQ_INSERT_AFTER(&object->memq, mold, mnew, listq);
|
||||
|
|
Loading…
Reference in a new issue