diff options
Diffstat (limited to 'sys/vm/vnode_pager.c')
-rw-r--r-- | sys/vm/vnode_pager.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c index bad9bcf..97e7039 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; |