summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2006-08-10 04:48:29 +0000
committeralc <alc@FreeBSD.org>2006-08-10 04:48:29 +0000
commitbc546843d7858048c8c76953196a1dc6002131a0 (patch)
tree414fcc416a893ed09d4141dad4b097bd96ac91d9 /sys/vm
parent73fe45cc82f4df50be8287df0d8858ed74824928 (diff)
downloadFreeBSD-src-bc546843d7858048c8c76953196a1dc6002131a0.zip
FreeBSD-src-bc546843d7858048c8c76953196a1dc6002131a0.tar.gz
Change vm_page_cowfault() so that it doesn't allocate a pre-busied page.
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 c34b6f2..8fd1538 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;
}
OpenPOWER on IntegriCloud