re-merge mrg-vm-swap into -current, and call it mrg-vm-swap2.
re-merge mrg-vm-swap into -current, and call it mrg-vm-swap2.
oops; fix these.
add vm_swap_12.c here.
* Fix some faulty logic
* Make sure not to keep the swap device's vnode locked (is it even
  necessary to have namei() lock it?)
* check for attempts to add a swap more than once
add <sys/syscallargs.h> as required, and <sys/mount.h> as previous requires.
expand a few comments, here and there...
oops!  commited this to the wrong branch earlier.  thanks again leo.
Cast away `const' from old swapon's `name' argument.
Include <sys/systm.h>
swstrategy: re-assign the buffer's block number and device according to
the underlying swap device pool (like the old code did).
We're using extents of "daddr_t"'s; don't convert into "caddr_t"'s.
Get arguments to extent_free() right.
It's perfectly okay to wait when adding/removing swap devices, so no fixed
extent maps are necessary.
Use a NOCOALESCE map to manage the per device block maps. In that case,
extent_free() will always return, while we let the swap pager deal with
allocation failures. Thus, no fixed extent maps here either and we can
do away with `nswapmap'.
Remove vestiges of `dmmin' and `dmmax'.
Fix logic flaw (causing NULL pointer deref) when adding a second swap device.
Circular queues are not null-terminated.
Set `b_lblkno' in swstrategy().
Revert change to use non-fixed extents; it doesn't behave well under heavy load.
remove struct swapinfo, as it was an unnessecary abstraction.
fix bug pointed out by leo:  misc counts swap devices not swap
priority levels.
remove struct swapinfo, as it was an unnessecary abstraction.
use and display (but in poor form (for now)) new "inuse"
implement swap accounting with new se_inuse member to struct swapent.
Also deliver entries where 'sdp->swd_dev == NODEV' when doing SWAP_STATS.
These are regular-file entries.