summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_object.c
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2010-07-04 11:13:33 +0000
committerkib <kib@FreeBSD.org>2010-07-04 11:13:33 +0000
commit56b6a703a500930a3a82648d510bce10b2dc47de (patch)
tree06e262fef125d3a856cb054b06e29ba788645f48 /sys/vm/vm_object.c
parenta605c9b153aa0f0382c3f95a4ac748647ced988a (diff)
downloadFreeBSD-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.c16
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
OpenPOWER on IntegriCloud