summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_page.c
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2003-12-31 19:02:01 +0000
committeralc <alc@FreeBSD.org>2003-12-31 19:02:01 +0000
commit6d0a5af0177f3eea36a5d323f233b9532bcfc410 (patch)
tree4245fcce0b9b3c6deacfe18266c49dff514931e7 /sys/vm/vm_page.c
parentcbbc8a3cf8689228cfc131523291b1bc9bb2b9c8 (diff)
downloadFreeBSD-src-6d0a5af0177f3eea36a5d323f233b9532bcfc410.zip
FreeBSD-src-6d0a5af0177f3eea36a5d323f233b9532bcfc410.tar.gz
In vm_page_lookup() check the root of the vm object's splay tree for the
desired page before calling vm_page_splay().
Diffstat (limited to 'sys/vm/vm_page.c')
-rw-r--r--sys/vm/vm_page.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c
index af8a594..310b45b 100644
--- a/sys/vm/vm_page.c
+++ b/sys/vm/vm_page.c
@@ -649,9 +649,11 @@ vm_page_lookup(vm_object_t object, vm_pindex_t pindex)
vm_page_t m;
VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
- m = vm_page_splay(pindex, object->root);
- if ((object->root = m) != NULL && m->pindex != pindex)
- m = NULL;
+ if ((m = object->root) != NULL && m->pindex != pindex) {
+ m = vm_page_splay(pindex, m);
+ if ((object->root = m)->pindex != pindex)
+ m = NULL;
+ }
return (m);
}
OpenPOWER on IntegriCloud