summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_contig.c
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2003-04-24 04:31:25 +0000
committeralc <alc@FreeBSD.org>2003-04-24 04:31:25 +0000
commit87da2c3cf37429dd7554a13d8b70a046ccc3edcf (patch)
tree524c091529a13b4f30095fe4af93a54b4cd973f6 /sys/vm/vm_contig.c
parent51f01cb3f731c451c22c07d8bb6a6e9ecffb72d1 (diff)
downloadFreeBSD-src-87da2c3cf37429dd7554a13d8b70a046ccc3edcf.zip
FreeBSD-src-87da2c3cf37429dd7554a13d8b70a046ccc3edcf.tar.gz
- Acquire the vm_object's lock when performing vm_object_page_clean().
- Add a parameter to vm_pageout_flush() that tells vm_pageout_flush() whether its caller has locked the vm_object. (This is a temporary measure to bootstrap vm_object locking.)
Diffstat (limited to 'sys/vm/vm_contig.c')
-rw-r--r--sys/vm/vm_contig.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/vm/vm_contig.c b/sys/vm/vm_contig.c
index da30a00..cf5ee09 100644
--- a/sys/vm/vm_contig.c
+++ b/sys/vm/vm_contig.c
@@ -105,14 +105,16 @@ vm_contig_launder(int queue)
vm_page_unlock_queues();
vn_lock(object->handle,
LK_EXCLUSIVE | LK_RETRY, curthread);
+ VM_OBJECT_LOCK(object);
vm_object_page_clean(object, 0, 0, OBJPC_SYNC);
+ VM_OBJECT_UNLOCK(object);
VOP_UNLOCK(object->handle, 0, curthread);
vm_page_lock_queues();
return (TRUE);
} else if (object->type == OBJT_SWAP ||
object->type == OBJT_DEFAULT) {
m_tmp = m;
- vm_pageout_flush(&m_tmp, 1, 0);
+ vm_pageout_flush(&m_tmp, 1, 0, FALSE);
return (TRUE);
}
} else if (m->busy == 0 && m->hold_count == 0)
OpenPOWER on IntegriCloud