summaryrefslogtreecommitdiff
path: root/sys/vm/vm_object.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/vm/vm_object.c')
-rw-r--r--sys/vm/vm_object.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c
index 0a8d78e95bd5..1bb7a40483f6 100644
--- a/sys/vm/vm_object.c
+++ b/sys/vm/vm_object.c
@@ -61,7 +61,7 @@
* any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes.
*
- * $Id: vm_object.c,v 1.132 1998/10/23 05:43:13 dg Exp $
+ * $Id: vm_object.c,v 1.133 1998/10/25 17:44:58 phk Exp $
*/
/*
@@ -404,6 +404,7 @@ vm_object_terminate(object)
register vm_object_t object;
{
register vm_page_t p;
+ int s;
/*
* Make sure no one uses us.
@@ -449,6 +450,7 @@ vm_object_terminate(object)
* removes them from paging queues. Don't free wired pages, just
* remove them from the object.
*/
+ s = splvm();
while ((p = TAILQ_FIRST(&object->memq)) != NULL) {
#if !defined(MAX_PERF)
if (p->busy || (p->flags & PG_BUSY))
@@ -465,6 +467,7 @@ vm_object_terminate(object)
vm_page_remove(p);
}
}
+ splx(s);
/*
* Let the pager know object is dead.