X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/blobdiff_plain/dc96bbfdc3791067aff3f2c707d585c7bec05dfb..736d20f2339f35ca779856cf50dba7b890b8be30:/sys/vm/vm_pageout.c diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c index e0620db8dd..91d8f0d9c5 100644 --- a/sys/vm/vm_pageout.c +++ b/sys/vm/vm_pageout.c @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * from: @(#)vm_pageout.c 7.4 (Berkeley) 5/7/91 - * $Id: vm_pageout.c,v 1.7 1993/12/19 00:56:12 wollman Exp $ + * $Id: vm_pageout.c,v 1.8 1993/12/21 05:51:06 davidg Exp $ */ /* @@ -220,37 +220,22 @@ vm_pageout_scan() * until all shadows are not paging. This * allows vm_object_collapse to work better and * helps control swap space size. - * (J. Dyson 11 Nov 93) + * (J. Dyson 18 Dec 93) */ vm_page_unlock_queues(); - if( !object->pager) { - /* - * If our shadow is active, then wait until paging is done - * this will allow vm_object_collapse to work well. - * The collapse is necessary to keep swap space down. - */ - if( ((object->shadow && object->shadow->paging_in_progress) || - (vm_page_free_count < vm_pageout_free_min))) { - vm_object_unlock(object); - m = (vm_page_t) queue_next(&m->pageq); - continue; - } else { - vm_object_collapse(object); - /* - * If we still have a shadow active, then defer the - * creation of the pager further... - */ - if( object->shadow) { - if( object->shadow->paging_in_progress) { - vm_object_unlock(object); - m = (vm_page_t) queue_next(&m->pageq); - continue; - } - } - } + + if( !object->pager && + (object->shadow && object->shadow->paging_in_progress ) || + (vm_page_free_count < vm_pageout_free_min)) { + vm_object_unlock(object); + m = (vm_page_t) queue_next(&m->pageq); + continue; } + + vm_object_collapse(object); + pmap_page_protect(VM_PAGE_TO_PHYS(m), VM_PROT_NONE); m->flags |= PG_BUSY;