summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_fault.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/vm/vm_fault.c')
-rw-r--r--sys/vm/vm_fault.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c
index 37ff142..058107e 100644
--- a/sys/vm/vm_fault.c
+++ b/sys/vm/vm_fault.c
@@ -319,12 +319,13 @@ RetryFault:;
/*
* check for page-based copy on write
*/
-
+ vm_page_lock_queues();
if ((fs.m->cow) &&
(fault_type & VM_PROT_WRITE)) {
s = splvm();
vm_page_cowfault(fs.m);
splx(s);
+ vm_page_unlock_queues();
unlock_things(&fs);
goto RetryFault;
}
@@ -345,7 +346,6 @@ RetryFault:;
* around with a vm_page_t->busy page except, perhaps,
* to pmap it.
*/
- vm_page_lock_queues();
if ((fs.m->flags & PG_BUSY) || fs.m->busy) {
vm_page_unlock_queues();
unlock_things(&fs);
OpenPOWER on IntegriCloud