aboutsummaryrefslogtreecommitdiff
path: root/sys/vm
diff options
context:
space:
mode:
authorPoul-Henning Kamp <phk@FreeBSD.org>2004-10-21 15:53:54 +0000
committerPoul-Henning Kamp <phk@FreeBSD.org>2004-10-21 15:53:54 +0000
commita76d8f4ec938ff140363a48cd6a9cffc42617f06 (patch)
tree9d355bca75100170618443d740a1312fd842af5d /sys/vm
parent1bca607b9fe1f7e49bc77c4931dfb1991c1e22d1 (diff)
Notes
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/swap_pager.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c
index 41992896fb5b3..22487ddb62ce5 100644
--- a/sys/vm/swap_pager.c
+++ b/sys/vm/swap_pager.c
@@ -2545,18 +2545,9 @@ swapdev_strategy(struct buf *bp, struct swdevt *sp)
s = splvm();
if (bp->b_iocmd == BIO_WRITE) {
vp = bp->b_vp;
- if (vp) {
- VI_LOCK(vp);
- vp->v_numoutput--;
- if ((vp->v_iflag & VI_BWAIT) && vp->v_numoutput <= 0) {
- vp->v_iflag &= ~VI_BWAIT;
- wakeup(&vp->v_numoutput);
- }
- VI_UNLOCK(vp);
- }
- VI_LOCK(vp2);
- vp2->v_numoutput++;
- VI_UNLOCK(vp2);
+ if (vp)
+ bufobj_wdrop(&vp->v_bufobj);
+ bufobj_wref(&vp2->v_bufobj);
}
bp->b_vp = vp2;
splx(s);