summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_fault.c
diff options
context:
space:
mode:
authordyson <dyson@FreeBSD.org>1996-05-26 05:30:33 +0000
committerdyson <dyson@FreeBSD.org>1996-05-26 05:30:33 +0000
commit2640e59c23504382951d71002949f3d3ab2d14c8 (patch)
tree0865f41b510c733bfd4cde5e4571d7b059d1cf5e /sys/vm/vm_fault.c
parent0c6fd6b34b71c2ed789241fb82d8f93b2ac3b291 (diff)
downloadFreeBSD-src-2640e59c23504382951d71002949f3d3ab2d14c8.zip
FreeBSD-src-2640e59c23504382951d71002949f3d3ab2d14c8.tar.gz
I think this covers (fixes) the last batch of freeing active/held/busy page
problem. BY MISTAKE, the vm_page_unqueue (or equiv) was removed from the vm_fault code. Really bad things appear to happen if a page is on a queue while it is being faulted.
Diffstat (limited to 'sys/vm/vm_fault.c')
-rw-r--r--sys/vm/vm_fault.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c
index 05b9bf9..9f481c6 100644
--- a/sys/vm/vm_fault.c
+++ b/sys/vm/vm_fault.c
@@ -66,7 +66,7 @@
* any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes.
*
- * $Id: vm_fault.c,v 1.44 1996/05/18 03:37:35 dyson Exp $
+ * $Id: vm_fault.c,v 1.45 1996/05/19 07:36:45 dyson Exp $
*/
/*
@@ -292,6 +292,8 @@ RetryFault:;
goto RetryFault;
}
+ vm_page_unqueue(m);
+
if (m->valid &&
((m->valid & VM_PAGE_BITS_ALL) != VM_PAGE_BITS_ALL) &&
m->object != kernel_object && m->object != kmem_object) {
OpenPOWER on IntegriCloud