Changeset View
Changeset View
Standalone View
Standalone View
head/sys/vm/vm_page.c
Show First 20 Lines • Show All 2,639 Lines • ▼ Show 20 Lines | else if ((object = m->object) != NULL) { | ||||
* The new page must be deactivated | * The new page must be deactivated | ||||
* before the object is unlocked. | * before the object is unlocked. | ||||
*/ | */ | ||||
vm_page_change_lock(m_new, &m_mtx); | vm_page_change_lock(m_new, &m_mtx); | ||||
vm_page_deactivate(m_new); | vm_page_deactivate(m_new); | ||||
} else { | } else { | ||||
m->flags &= ~PG_ZERO; | m->flags &= ~PG_ZERO; | ||||
vm_page_dequeue(m); | vm_page_dequeue(m); | ||||
vm_page_remove(m); | |||||
if (vm_page_free_prep(m)) | if (vm_page_free_prep(m)) | ||||
SLIST_INSERT_HEAD(&free, m, | SLIST_INSERT_HEAD(&free, m, | ||||
plinks.s.ss); | plinks.s.ss); | ||||
KASSERT(m->dirty == 0, | KASSERT(m->dirty == 0, | ||||
("page %p is dirty", m)); | ("page %p is dirty", m)); | ||||
} | } | ||||
} else | } else | ||||
error = EBUSY; | error = EBUSY; | ||||
▲ Show 20 Lines • Show All 1,892 Lines • Show Last 20 Lines |