diff options
author | alc <alc@FreeBSD.org> | 2003-12-31 19:02:01 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2003-12-31 19:02:01 +0000 |
commit | 6d0a5af0177f3eea36a5d323f233b9532bcfc410 (patch) | |
tree | 4245fcce0b9b3c6deacfe18266c49dff514931e7 /sys/vm/vm_page.c | |
parent | cbbc8a3cf8689228cfc131523291b1bc9bb2b9c8 (diff) | |
download | FreeBSD-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.c | 8 |
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); } |