aboutsummaryrefslogtreecommitdiff
path: root/sys/vm/vm_page.c
diff options
context:
space:
mode:
authorAlan Cox <alc@FreeBSD.org>2004-12-26 21:46:44 +0000
committerAlan Cox <alc@FreeBSD.org>2004-12-26 21:46:44 +0000
commit40198b3c04a64543d54bc57cd163377c413da2f1 (patch)
treee521b506a08eb182b1f0ba5ffe9cf553febb32d2 /sys/vm/vm_page.c
parent47095f775f9b9923350a5ab0796a4e08e2c62151 (diff)
downloadsrc-40198b3c04a64543d54bc57cd163377c413da2f1.tar.gz
src-40198b3c04a64543d54bc57cd163377c413da2f1.zip
Assert that the vm object is locked on entry to vm_page_sleep_if_busy();
remove some unneeded code.
Notes
Notes: svn path=/head/; revision=139332
Diffstat (limited to 'sys/vm/vm_page.c')
-rw-r--r--sys/vm/vm_page.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c
index 3b880c9fc1ba..68688ad72d62 100644
--- a/sys/vm/vm_page.c
+++ b/sys/vm/vm_page.c
@@ -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);