My recent change in r361855 didn't correctly handle read ahead/behind pages.
We current still call vm_page_readahead_finish() for such pages even if
the read failed and the pages are not marked valid, but that function
asserts that the page is valid since apparently we don't want invalid pages
on the paging queues.
This change essentially reverts r361855 and instead handles read ahead/behind
pages separately in the loop when the I/O has failed. We still need to unbusy
those pages even though we can't put them on a paging queue.