kernel - Fix incorrect dirty/reprotect code in pageout
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 16 Aug 2012 18:42:25 +0000 (11:42 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Thu, 16 Aug 2012 18:42:25 +0000 (11:42 -0700)
commitab3e1edd524fbb06adf34b8a5d37c2789a379c4f
treee4a24eb2bd3513958a50ce95ec22e32968220b45
parent552112a039ac22a69424162320efe276fa413134
kernel - Fix incorrect dirty/reprotect code in pageout

* vm_object_page_collect_flush() was trying to re-protect VM pages that
  were still marked dirty after pageout I/O was initiated without owning
  the BUSY bit on the page.  This operation could race whatever I/O was
  going on and multiple issues.  Remove the re-protect.

  Just don't do it.  It's an unnecessary operation.  We still re-set
  PG_CLEANCHK on the page and that should be fine insofar as the pageout
  daemon goes.

* Note that the pageout_flush code protects the VM pages properly (to
  read-only) prior to initiating I/O .

* Should fix bug #2350

* Might be related to the wire-count bug considering that we were messing
  with the page's pmap without owning the BUSY bit.  Small chance.
sys/vm/vm_object.c