summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/vm/vm_reserv.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/vm/vm_reserv.c b/sys/vm/vm_reserv.c
index e2ec77f..eb14411 100644
--- a/sys/vm/vm_reserv.c
+++ b/sys/vm/vm_reserv.c
@@ -349,8 +349,9 @@ vm_reserv_alloc_contig(vm_object_t object, vm_pindex_t pindex, u_long npages,
rv = vm_reserv_from_page(mpred);
if (rv->object == object && vm_reserv_has_pindex(rv, pindex))
goto found;
- }
- msucc = vm_radix_lookup_ge(&object->rtree, pindex);
+ msucc = TAILQ_NEXT(mpred, listq);
+ } else
+ msucc = vm_radix_lookup_ge(&object->rtree, pindex);
if (msucc != NULL) {
KASSERT(msucc->pindex > pindex,
("vm_reserv_alloc_page: pindex already allocated"));
@@ -503,8 +504,9 @@ vm_reserv_alloc_page(vm_object_t object, vm_pindex_t pindex)
rv = vm_reserv_from_page(mpred);
if (rv->object == object && vm_reserv_has_pindex(rv, pindex))
goto found;
- }
- msucc = vm_radix_lookup_ge(&object->rtree, pindex);
+ msucc = TAILQ_NEXT(mpred, listq);
+ } else
+ msucc = vm_radix_lookup_ge(&object->rtree, pindex);
if (msucc != NULL) {
KASSERT(msucc->pindex > pindex,
("vm_reserv_alloc_page: pindex already allocated"));
OpenPOWER on IntegriCloud