Assert that the vm object is locked on entry to vm_page_sleep_if_busy();

remove some unneeded code.
This commit is contained in:
alc 2004-12-26 21:46:44 +00:00
parent 6e908e6c88
commit 0a1de6d552

View File

@ -424,9 +424,9 @@ int
vm_page_sleep_if_busy(vm_page_t m, int also_m_busy, const char *msg)
{
vm_object_t object;
int is_object_locked;
mtx_assert(&vm_page_queue_mtx, MA_OWNED);
VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
if ((m->flags & PG_BUSY) || (also_m_busy && m->busy)) {
vm_page_flag_set(m, PG_WANTED | PG_REFERENCED);
/*
@ -435,16 +435,11 @@ vm_page_sleep_if_busy(vm_page_t m, int also_m_busy, const char *msg)
* lock, we will assume we hold a reference to the object
* such that even if m->object changes, we can re-lock
* it.
*
* Remove mtx_owned() after vm_object locking is finished.
*/
object = m->object;
if ((is_object_locked = object != NULL &&
mtx_owned(&object->mtx)))
mtx_unlock(&object->mtx);
VM_OBJECT_UNLOCK(object);
msleep(m, &vm_page_queue_mtx, PDROP | PVM, msg, 0);
if (is_object_locked)
mtx_lock(&object->mtx);
VM_OBJECT_LOCK(object);
return (TRUE);
}
return (FALSE);