diff options
Diffstat (limited to 'sys/vm/swap_pager.c')
-rw-r--r-- | sys/vm/swap_pager.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c index e25a556..711a00f 100644 --- a/sys/vm/swap_pager.c +++ b/sys/vm/swap_pager.c @@ -1134,10 +1134,9 @@ swap_pager_getpages(object, m, count, reqpage) bp->b_iocmd = BIO_READ; bp->b_iodone = swp_pager_async_iodone; - bp->b_rcred = bp->b_wcred = proc0.p_ucred; + bp->b_rcred = crhold(proc0.p_ucred); + bp->b_wcred = crhold(proc0.p_ucred); bp->b_data = (caddr_t) kva; - crhold(bp->b_rcred); - crhold(bp->b_wcred); bp->b_blkno = blk - (reqpage - i); bp->b_bcount = PAGE_SIZE * (j - i); bp->b_bufsize = PAGE_SIZE * (j - i); @@ -1386,14 +1385,12 @@ swap_pager_putpages(object, m, count, sync, rtvals) pmap_qenter((vm_offset_t)bp->b_data, &m[i], n); - bp->b_rcred = bp->b_wcred = proc0.p_ucred; + bp->b_rcred = crhold(proc0.p_ucred); + bp->b_wcred = crhold(proc0.p_ucred); bp->b_bcount = PAGE_SIZE * n; bp->b_bufsize = PAGE_SIZE * n; bp->b_blkno = blk; - crhold(bp->b_rcred); - crhold(bp->b_wcred); - pbgetvp(swapdev_vp, bp); for (j = 0; j < n; ++j) { @@ -2082,12 +2079,10 @@ getchainbuf(struct bio *bp, struct vnode *vp, int flags) nbp->b_iocmd = bp->bio_cmd; nbp->b_ioflags = bp->bio_flags & BIO_ORDERED; nbp->b_flags = flags; - nbp->b_rcred = nbp->b_wcred = proc0.p_ucred; + nbp->b_rcred = crhold(proc0.p_ucred); + nbp->b_wcred = crhold(proc0.p_ucred); nbp->b_iodone = vm_pager_chain_iodone; - crhold(nbp->b_rcred); - crhold(nbp->b_wcred); - if (vp) pbgetvp(vp, nbp); return(nbp); |