Konstantin Belousov c506a6386f kern_sendfile.c: fix bugs with handling of busy page states.
- Do not call into a vnode pager while leaving some pages from the
  same block as the current run, xbusy. This immediately deadlocks if
  pager needs to instantiate the buffer.
- Only relookup bogus pages after io finished, otherwise we might
  obliterate the valid pages by out of date disk content.  While there,
  expand the comment explaining this pecularity.
- Do not double-unbusy on error.  Split unbusy for error case, which
  is left in the sendfile_swapin(), from the more properly coded
  normal case in sendfile_iodone().
- Add an XXXKIB comment explaining the serious bug in the validation
  algorithm, not fixed by this patch series.

PR:	244713
Reviewed by:	glebius, markj
Tested by:	pho
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D24038
2020-03-30 22:13:32 +00:00
..
2020-03-27 00:29:33 +00:00
2020-03-30 16:04:25 +00:00
2020-02-20 16:58:19 +00:00
2020-03-20 16:15:45 +00:00
2020-03-23 17:51:44 +00:00
2020-03-27 00:29:33 +00:00
2020-03-20 21:06:58 +00:00
2020-03-30 16:04:25 +00:00
2020-03-04 22:32:40 +00:00
2020-03-01 23:01:37 +00:00
2020-03-16 12:33:57 +00:00
2020-02-03 17:35:11 +00:00