diff options
| author | David Greenman <dg@FreeBSD.org> | 1998-10-23 05:43:13 +0000 |
|---|---|---|
| committer | David Greenman <dg@FreeBSD.org> | 1998-10-23 05:43:13 +0000 |
| commit | 9fcfb650d1733bc9d84a7d4ebd465d66ad2bff6c (patch) | |
| tree | 839a0206e18cbdb07b1a1d3e7a32cc3353a67fba /sys/vm | |
| parent | 356863eb01047d29b7b5c0574a8802d27bb18082 (diff) | |
Notes
Diffstat (limited to 'sys/vm')
| -rw-r--r-- | sys/vm/vm_object.c | 15 |
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); |
