aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/dev/md/md.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/sys/dev/md/md.c b/sys/dev/md/md.c
index 99b18b186fb9..d3e3da8ac443 100644
--- a/sys/dev/md/md.c
+++ b/sys/dev/md/md.c
@@ -629,9 +629,7 @@ mdstart_swap(struct md_s *sc, struct bio *bp)
if (rv == VM_PAGER_ERROR) {
sf_buf_free(sf);
sched_unpin();
- vm_page_lock_queues();
vm_page_wakeup(m);
- vm_page_unlock_queues();
break;
}
bcopy((void *)(sf_buf_kva(sf) + offs), p, len);
@@ -641,9 +639,7 @@ mdstart_swap(struct md_s *sc, struct bio *bp)
if (rv == VM_PAGER_ERROR) {
sf_buf_free(sf);
sched_unpin();
- vm_page_lock_queues();
vm_page_wakeup(m);
- vm_page_unlock_queues();
break;
}
bcopy(p, (void *)(sf_buf_kva(sf) + offs), len);
@@ -655,9 +651,7 @@ mdstart_swap(struct md_s *sc, struct bio *bp)
if (rv == VM_PAGER_ERROR) {
sf_buf_free(sf);
sched_unpin();
- vm_page_lock_queues();
vm_page_wakeup(m);
- vm_page_unlock_queues();
break;
}
bzero((void *)(sf_buf_kva(sf) + offs), len);
@@ -667,8 +661,8 @@ mdstart_swap(struct md_s *sc, struct bio *bp)
}
sf_buf_free(sf);
sched_unpin();
- vm_page_lock_queues();
vm_page_wakeup(m);
+ vm_page_lock_queues();
vm_page_activate(m);
if (bp->bio_cmd == BIO_WRITE)
vm_page_dirty(m);