diff options
author | alc <alc@FreeBSD.org> | 2015-09-27 01:26:41 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2015-09-27 01:26:41 +0000 |
commit | 8a6fcabbcf4777957124f6be9ba9dba42b68a9b7 (patch) | |
tree | 18130b0e1bd2a7ef2328f0b55490838b12f1f6c6 | |
parent | 5f3a8b903900fb6d4bee2ad7f5825aec11de7f7e (diff) | |
download | FreeBSD-src-8a6fcabbcf4777957124f6be9ba9dba42b68a9b7.zip FreeBSD-src-8a6fcabbcf4777957124f6be9ba9dba42b68a9b7.tar.gz |
MFC r284654
Avoid pmap_is_modified() on pages that can't be mapped.
-rw-r--r-- | sys/vm/vm_pageout.c | 8 |
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) { /* |