aboutsummaryrefslogtreecommitdiff
path: root/sys/vm
diff options
context:
space:
mode:
authorDavid Greenman <dg@FreeBSD.org>1998-10-23 05:43:13 +0000
committerDavid Greenman <dg@FreeBSD.org>1998-10-23 05:43:13 +0000
commit9fcfb650d1733bc9d84a7d4ebd465d66ad2bff6c (patch)
tree839a0206e18cbdb07b1a1d3e7a32cc3353a67fba /sys/vm
parent356863eb01047d29b7b5c0574a8802d27bb18082 (diff)
Notes
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_object.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c
index 2228e4be8a09..3557e9ddb1ef 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.130 1998/10/22 02:16:53 dg Exp $
+ * $Id: vm_object.c,v 1.131 1998/10/23 05:25:49 dg Exp $
*/
/*
@@ -446,11 +446,6 @@ vm_object_terminate(object)
panic("vm_object_terminate: object with references, ref_count=%d", object->ref_count);
/*
- * Let the pager know object is dead.
- */
- vm_pager_deallocate(object);
-
- /*
* Now free any remaining pages. For internal objects, this also
* removes them from paging queues. Don't free wired pages, just
* remove them from the object.
@@ -465,13 +460,19 @@ vm_object_terminate(object)
vm_page_free(p);
cnt.v_pfree++;
} else {
- printf("vm_object_terminate: not freeing wired page; wire_count=%d\n", p->wire_count);
+ if (!(p->flags & PG_FICTITIOUS))
+ printf("vm_object_terminate: not freeing wired page; wire_count=%d\n", p->wire_count);
vm_page_busy(p);
vm_page_remove(p);
}
}
/*
+ * Let the pager know object is dead.
+ */
+ vm_pager_deallocate(object);
+
+ /*
* Remove the object from the global object list.
*/
simple_lock(&vm_object_list_lock);