summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2015-09-27 01:26:41 +0000
committeralc <alc@FreeBSD.org>2015-09-27 01:26:41 +0000
commit8a6fcabbcf4777957124f6be9ba9dba42b68a9b7 (patch)
tree18130b0e1bd2a7ef2328f0b55490838b12f1f6c6 /sys/vm
parent5f3a8b903900fb6d4bee2ad7f5825aec11de7f7e (diff)
downloadFreeBSD-src-8a6fcabbcf4777957124f6be9ba9dba42b68a9b7.zip
FreeBSD-src-8a6fcabbcf4777957124f6be9ba9dba42b68a9b7.tar.gz
MFC r284654
Avoid pmap_is_modified() on pages that can't be mapped.
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_pageout.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c
index 6a56fd7..dce3aad 100644
--- a/sys/vm/vm_pageout.c
+++ b/sys/vm/vm_pageout.c
@@ -1115,9 +1115,11 @@ vm_pageout_scan(struct vm_domain *vmd, int pass)
* then the page may still be modified until the last of those
* mappings are removed.
*/
- vm_page_test_dirty(m);
- if (m->dirty == 0 && object->ref_count != 0)
- pmap_remove_all(m);
+ if (object->ref_count != 0) {
+ vm_page_test_dirty(m);
+ if (m->dirty == 0)
+ pmap_remove_all(m);
+ }
if (m->valid == 0) {
/*
OpenPOWER on IntegriCloud