Create macros (with names borrowed from Mach 3) to manipulate
object->paging_in_progress, and use them. When decreasing the
paging count, always make sure to wake up anyone waiting.
Fixes `vospgc', `vosca1', and `vosca2' hangs.
locked page. Make that work. This also obviates the need for vm_fault() to
bogusly activate a page before deactivating it. Finally, make sure the
semantics of vm_object_deactive_pages() don't change.
if it's going to be ifdef'd out until it's tested, it shouldn't
be put in to begin with.
also, minor ansifications and cleanups (mostly so tags would be happier).
to actually fail is currently disabled, as this would enable some new code
in vm_map_pageable() (disabled in this commit) that hasn't been used to
date. I'm fairly confident it is all OK, but shall test it some more once
the rest of the kernel is more stable, before enabling it.
it seems to keep the vm system from deadlocking the system when it runs
out of swap + physical memory.
prevents the system from giving the last page(s) to anything but the
referenced "processes" (especially important is the pager process,
which should never have to wait for a free page).