diff options
| author | Poul-Henning Kamp <phk@FreeBSD.org> | 2004-10-21 15:53:54 +0000 |
|---|---|---|
| committer | Poul-Henning Kamp <phk@FreeBSD.org> | 2004-10-21 15:53:54 +0000 |
| commit | a76d8f4ec938ff140363a48cd6a9cffc42617f06 (patch) | |
| tree | 9d355bca75100170618443d740a1312fd842af5d /sys/vm | |
| parent | 1bca607b9fe1f7e49bc77c4931dfb1991c1e22d1 (diff) | |
Notes
Diffstat (limited to 'sys/vm')
| -rw-r--r-- | sys/vm/swap_pager.c | 15 |
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); |
