diff options
author | alc <alc@FreeBSD.org> | 2006-08-10 04:48:29 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2006-08-10 04:48:29 +0000 |
commit | bc546843d7858048c8c76953196a1dc6002131a0 (patch) | |
tree | 414fcc416a893ed09d4141dad4b097bd96ac91d9 /sys/vm/vm_page.c | |
parent | 73fe45cc82f4df50be8287df0d8858ed74824928 (diff) | |
download | FreeBSD-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/vm_page.c')
-rw-r--r-- | sys/vm/vm_page.c | 3 |
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; } |