Index: uvm_swap.c =================================================================== RCS file: /cvs/src/sys/uvm/uvm_swap.c,v retrieving revision 1.132 diff -u -p -r1.132 uvm_swap.c --- uvm_swap.c 23 Dec 2014 04:47:30 -0000 1.132 +++ uvm_swap.c 2 Jan 2015 05:43:06 -0000 @@ -192,6 +192,7 @@ struct vndxfer { struct vndbuf { struct buf vb_buf; + struct vndxfer *vb_vnx; struct task vb_task; }; @@ -1229,7 +1230,8 @@ sw_reg_strategy(struct swapdev *sdp, str } /* patch it back to the vnx */ - task_set(&nbp->vb_task, sw_reg_iodone_internal, nbp, vnx); + nbp->vb_vnx = vnx; + task_set(&nbp->vb_task, sw_reg_iodone_internal, nbp, NULL); s = splbio(); if (vnx->vx_error != 0) { @@ -1313,10 +1315,10 @@ sw_reg_iodone(struct buf *bp) } void -sw_reg_iodone_internal(void *xvbp, void *xvnx) +sw_reg_iodone_internal(void *xvbp, void *null) { struct vndbuf *vbp = xvbp; - struct vndxfer *vnx = xvnx; + struct vndxfer *vnx = vbp->vb_vnx; struct buf *pbp = vnx->vx_bp; /* parent buffer */ struct swapdev *sdp = vnx->vx_sdp; int resid, s;