diff options
| author | John Baldwin <jhb@FreeBSD.org> | 2001-10-11 23:38:17 +0000 |
|---|---|---|
| committer | John Baldwin <jhb@FreeBSD.org> | 2001-10-11 23:38:17 +0000 |
| commit | bd78cece5df2063d2e852bd6c895e05385eea931 (patch) | |
| tree | d3ca87a8ac917d5003235cc737cd5f76591f7c1b /sys/vm | |
| parent | 698166ca554d6cba78cd1728268fa03091697973 (diff) | |
Notes
Diffstat (limited to 'sys/vm')
| -rw-r--r-- | sys/vm/swap_pager.c | 17 | ||||
| -rw-r--r-- | sys/vm/vnode_pager.c | 18 |
2 files changed, 14 insertions, 21 deletions
diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c index e25a5567cad1..711a00ff35d6 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); diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c index bad9bcf948cb..97e703924c49 100644 --- a/sys/vm/vnode_pager.c +++ b/sys/vm/vnode_pager.c @@ -434,11 +434,10 @@ vnode_pager_input_smlfs(object, m) /* build a minimal buffer header */ bp->b_iocmd = BIO_READ; bp->b_iodone = vnode_pager_iodone; - bp->b_rcred = bp->b_wcred = curthread->td_proc->p_ucred; - if (bp->b_rcred != NOCRED) - crhold(bp->b_rcred); - if (bp->b_wcred != NOCRED) - crhold(bp->b_wcred); + KASSERT(bp->b_rcred == NOCRED, ("leaking read ucred")); + KASSERT(bp->b_wcred == NOCRED, ("leaking write ucred")); + bp->b_rcred = crhold(curthread->td_proc->p_ucred); + bp->b_wcred = crhold(curthread->td_proc->p_ucred); bp->b_data = (caddr_t) kva + i * bsize; bp->b_blkno = fileaddr; pbgetvp(dp, bp); @@ -754,11 +753,10 @@ vnode_pager_generic_getpages(vp, m, bytecount, reqpage) bp->b_iocmd = BIO_READ; bp->b_iodone = vnode_pager_iodone; /* B_PHYS is not set, but it is nice to fill this in */ - bp->b_rcred = bp->b_wcred = curthread->td_proc->p_ucred; - if (bp->b_rcred != NOCRED) - crhold(bp->b_rcred); - if (bp->b_wcred != NOCRED) - crhold(bp->b_wcred); + KASSERT(bp->b_rcred == NOCRED, ("leaking read ucred")); + KASSERT(bp->b_wcred == NOCRED, ("leaking write ucred")); + bp->b_rcred = crhold(curthread->td_proc->p_ucred); + bp->b_wcred = crhold(curthread->td_proc->p_ucred); bp->b_blkno = firstaddr; pbgetvp(dp, bp); bp->b_bcount = size; |
