DragonFly commits List (threaded) for 2012-08
git: kernel - Fix incorrect dirty/reprotect code in pageout
Author: Matthew Dillon <firstname.lastname@example.org>
Date: Thu Aug 16 11:42:25 2012 -0700
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
* 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.
Summary of changes:
sys/vm/vm_object.c | 14 ++++++++++----
1 files changed, 10 insertions(+), 4 deletions(-)
DragonFly BSD source repository