vnode_pager_haspage() could return TRUE but leave *before and *after
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 18 Dec 2008 21:18:29 +0000 (13:18 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Thu, 18 Dec 2008 21:18:29 +0000 (13:18 -0800)
commitbc823b32d9623d147abbdd8575bb463b05093f84
treed28d377e7accd54e7d5bc1069efb42b47f5eae3e
parente52babf90c3012bee8e24fdd738e2637636a661e
vnode_pager_haspage() could return TRUE but leave *before and *after
uninitialized, causing vm_fault's burst pagein feature to panic the system.

vm_fault was almost never using its burst pagein feature due to incorrect
test logic.  The burst pagein code itself was also seriously buggy, so it
is fortunate the test logic was broken.

Rewrite the broken test logic and fix the bugs in the burst pagein code.

Add a new sysctl vm.burst_fault, defaulting to 0 (disabled).  The default
will be changed to 1 in a week or two.
sys/vm/vm_fault.c
sys/vm/vnode_pager.c