diff options
author | alc <alc@FreeBSD.org> | 2002-07-07 06:01:25 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2002-07-07 06:01:25 +0000 |
commit | 8c632c03ee796eebe55c2b8c6071847e4c02ab84 (patch) | |
tree | 8aaaf63960db145e434245a5cf8f3b2520dfbc1a | |
parent | 8bf1a039cbc4ffad07555a6fbdf870dab6537d9a (diff) | |
download | FreeBSD-src-8c632c03ee796eebe55c2b8c6071847e4c02ab84.zip FreeBSD-src-8c632c03ee796eebe55c2b8c6071847e4c02ab84.tar.gz |
o Traverse the object's memq rather than repeatedly calling vm_page_lookup()
in vm_object_split().
-rw-r--r-- | sys/vm/vm_object.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c index 4403a24..1f6a2b5 100644 --- a/sys/vm/vm_object.c +++ b/sys/vm/vm_object.c @@ -1276,11 +1276,8 @@ vm_object_split(vm_map_entry_t entry) swap_pager_copy(orig_object, new_object, offidxstart, 0); vm_object_pip_wakeup(orig_object); } - for (idx = 0; idx < size; idx++) { - m = vm_page_lookup(new_object, idx); - if (m != NULL) - vm_page_wakeup(m); - } + TAILQ_FOREACH(m, &new_object->memq, listq) + vm_page_wakeup(m); entry->object.vm_object = new_object; entry->offset = 0LL; vm_object_deallocate(orig_object); |