diff options
author | Alan Cox <alc@FreeBSD.org> | 2006-08-10 04:48:29 +0000 |
---|---|---|
committer | Alan Cox <alc@FreeBSD.org> | 2006-08-10 04:48:29 +0000 |
commit | 75db2abb2e7241bfdb133136f1bd2e1f39cc0ca3 (patch) | |
tree | 414fcc416a893ed09d4141dad4b097bd96ac91d9 /sys/vm | |
parent | 939b8dd67a2a76d18024dcbc16b82ac09d51668b (diff) | |
download | src-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.c | 3 |
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; } |