summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authordg <dg@FreeBSD.org>1998-10-23 05:43:13 +0000
committerdg <dg@FreeBSD.org>1998-10-23 05:43:13 +0000
commitb898ae170b41b12e66753bfa9f82eea9a5bb794e (patch)
treef6a1fbf00d25af2a8e6c34fac61e0a74c504bcac /sys/vm
parent599836ef434a6f0153f080a69ccb802ff9a92aa0 (diff)
downloadFreeBSD-src-b898ae170b41b12e66753bfa9f82eea9a5bb794e.zip
FreeBSD-src-b898ae170b41b12e66753bfa9f82eea9a5bb794e.tar.gz
Oops, revert part of last fix. vm_pager_dealloc() can't be called until
after the pages are removed from the object...so fix the problem by not printing the diagnostic for wired fictitious pages (which is normal).
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 2228e4b..3557e9d 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);
OpenPOWER on IntegriCloud