diff options
author | dyson <dyson@FreeBSD.org> | 1996-05-26 05:30:33 +0000 |
---|---|---|
committer | dyson <dyson@FreeBSD.org> | 1996-05-26 05:30:33 +0000 |
commit | 2640e59c23504382951d71002949f3d3ab2d14c8 (patch) | |
tree | 0865f41b510c733bfd4cde5e4571d7b059d1cf5e /sys/vm/vm_fault.c | |
parent | 0c6fd6b34b71c2ed789241fb82d8f93b2ac3b291 (diff) | |
download | FreeBSD-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.c | 4 |
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) { |