diff options
Diffstat (limited to 'sys/vm/vm_pageout.c')
-rw-r--r-- | sys/vm/vm_pageout.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c index f807b77..05f1d5f 100644 --- a/sys/vm/vm_pageout.c +++ b/sys/vm/vm_pageout.c @@ -801,8 +801,7 @@ rescan0: * far as the VM code knows, any partially dirty pages are * fully dirty. */ - if (m->dirty == 0) { - vm_page_test_dirty(m); + if (m->dirty == 0 && !pmap_is_modified(m)) { /* * Avoid a race condition: Unless write access is * removed from the page, another processor could @@ -816,7 +815,7 @@ rescan0: * to the page, removing all access will be cheaper * overall. */ - if (m->dirty == 0 && (m->flags & PG_WRITEABLE) != 0) + if ((m->flags & PG_WRITEABLE) != 0) pmap_remove_all(m); } else { vm_page_dirty(m); |