summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/vm/vm_fault.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c
index cefcfb9..d3ccd93 100644
--- a/sys/vm/vm_fault.c
+++ b/sys/vm/vm_fault.c
@@ -642,16 +642,16 @@ readrest:
fs.m->valid = VM_PAGE_BITS_ALL;
break; /* break to PAGE HAS BEEN FOUND */
} else {
- if (fs.object != fs.first_object) {
- VM_OBJECT_LOCK(fs.object);
- vm_object_pip_wakeup(fs.object);
- VM_OBJECT_UNLOCK(fs.object);
- }
- KASSERT(fs.object != next_object, ("object loop %p", next_object));
- fs.object = next_object;
+ KASSERT(fs.object != next_object,
+ ("object loop %p", next_object));
+ VM_OBJECT_LOCK(next_object);
+ vm_object_pip_add(next_object, 1);
+ VM_OBJECT_UNLOCK(next_object);
VM_OBJECT_LOCK(fs.object);
- vm_object_pip_add(fs.object, 1);
+ if (fs.object != fs.first_object)
+ vm_object_pip_wakeup(fs.object);
VM_OBJECT_UNLOCK(fs.object);
+ fs.object = next_object;
}
}
OpenPOWER on IntegriCloud