aboutsummaryrefslogtreecommitdiff
path: root/sys/vm
diff options
context:
space:
mode:
authorAlan Cox <alc@FreeBSD.org>2006-08-10 04:48:29 +0000
committerAlan Cox <alc@FreeBSD.org>2006-08-10 04:48:29 +0000
commit75db2abb2e7241bfdb133136f1bd2e1f39cc0ca3 (patch)
tree414fcc416a893ed09d4141dad4b097bd96ac91d9 /sys/vm
parent939b8dd67a2a76d18024dcbc16b82ac09d51668b (diff)
downloadsrc-75db2abb2e7241bfdb133136f1bd2e1f39cc0ca3.tar.gz
src-75db2abb2e7241bfdb133136f1bd2e1f39cc0ca3.zip
Change vm_page_cowfault() so that it doesn't allocate a pre-busied page.
Notes
Notes: svn path=/head/; revision=161143
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_page.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c
index c34b6f2c598f..8fd15380c4bd 100644
--- a/sys/vm/vm_page.c
+++ b/sys/vm/vm_page.c
@@ -1733,7 +1733,7 @@ vm_page_cowfault(vm_page_t m)
retry_alloc:
pmap_remove_all(m);
vm_page_remove(m);
- mnew = vm_page_alloc(object, pindex, VM_ALLOC_NORMAL);
+ mnew = vm_page_alloc(object, pindex, VM_ALLOC_NORMAL | VM_ALLOC_NOBUSY);
if (mnew == NULL) {
vm_page_insert(m, object, pindex);
vm_page_unlock_queues();
@@ -1757,7 +1757,6 @@ vm_page_cowfault(vm_page_t m)
pmap_copy_page(m, mnew);
mnew->valid = VM_PAGE_BITS_ALL;
vm_page_dirty(mnew);
- vm_page_flag_clear(mnew, PG_BUSY);
mnew->wire_count = m->wire_count - m->cow;
m->wire_count = m->cow;
}