diff options
author | kib <kib@FreeBSD.org> | 2010-07-04 11:13:33 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2010-07-04 11:13:33 +0000 |
commit | 56b6a703a500930a3a82648d510bce10b2dc47de (patch) | |
tree | 06e262fef125d3a856cb054b06e29ba788645f48 /sys/vm/vm_object.c | |
parent | a605c9b153aa0f0382c3f95a4ac748647ced988a (diff) | |
download | FreeBSD-src-56b6a703a500930a3a82648d510bce10b2dc47de.zip FreeBSD-src-56b6a703a500930a3a82648d510bce10b2dc47de.tar.gz |
Introduce a helper function vm_page_find_least(). Use it in several places,
which inline the function.
Reviewed by: alc
Tested by: pho
MFC after: 1 week
Diffstat (limited to 'sys/vm/vm_object.c')
-rw-r--r-- | sys/vm/vm_object.c | 16 |
1 files changed, 2 insertions, 14 deletions
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c index ae7af15..11284ab 100644 --- a/sys/vm/vm_object.c +++ b/sys/vm/vm_object.c @@ -1400,13 +1400,7 @@ vm_object_split(vm_map_entry_t entry) orig_object->charge -= ptoa(size); } retry: - if ((m = TAILQ_FIRST(&orig_object->memq)) != NULL) { - if (m->pindex < offidxstart) { - m = vm_page_splay(offidxstart, orig_object->root); - if ((orig_object->root = m)->pindex < offidxstart) - m = TAILQ_NEXT(m, listq); - } - } + m = vm_page_find_least(orig_object, offidxstart); for (; m != NULL && (idx = m->pindex - offidxstart) < size; m = m_next) { m_next = TAILQ_NEXT(m, listq); @@ -1910,13 +1904,7 @@ vm_object_page_remove(vm_object_t object, vm_pindex_t start, vm_pindex_t end, vm_object_pip_add(object, 1); again: - if ((p = TAILQ_FIRST(&object->memq)) != NULL) { - if (p->pindex < start) { - p = vm_page_splay(start, object->root); - if ((object->root = p)->pindex < start) - p = TAILQ_NEXT(p, listq); - } - } + p = vm_page_find_least(object, start); /* * Assert: the variable p is either (1) the page with the |