vm_page: reset iterator after domainset drops lock
Restore the WAITFAIL check on resetting the iterator in
vm_page_alloc_domain_iter. It was dropped in 5239a9fb8662 ("vm_page:
alloc_domain_iter") and blamed for a stress test failure. In fact,
the failure was elsewhere, and removing the WAITFAIL check just made
it less likely to be discovered, without fixing it.
Modify vm_domainset_iter_page_init and vm_domainset_iter_page so that
they can take an iterator argument and reset the iterator if
vm_domainset_iter_releases and reacquires the object lock. Failure to
reset the iterator in this case was the real problem.
Reviewed by: alc, markj, kib
Tested by: pho
Differential Revision: https://reviews.freebsd.org/D50392