summaryrefslogtreecommitdiffstats
path: root/sys/fs
diff options
context:
space:
mode:
Diffstat (limited to 'sys/fs')
-rw-r--r--sys/fs/coda/coda_namecache.c3
-rw-r--r--sys/fs/specfs/spec_vnops.c9
-rw-r--r--sys/fs/unionfs/union_vfsops.c3
3 files changed, 6 insertions, 9 deletions
diff --git a/sys/fs/coda/coda_namecache.c b/sys/fs/coda/coda_namecache.c
index 9dfaf19..29da91a 100644
--- a/sys/fs/coda/coda_namecache.c
+++ b/sys/fs/coda/coda_namecache.c
@@ -274,11 +274,10 @@ coda_nc_enter(dcp, name, namelen, cred, cp)
*/
vref(CTOV(cp));
vref(CTOV(dcp));
- crhold(cred);
cncp->dcp = dcp;
cncp->cp = cp;
cncp->namelen = namelen;
- cncp->cred = cred;
+ cncp->cred = crhold(cred);
bcopy(name, cncp->name, (unsigned)namelen);
diff --git a/sys/fs/specfs/spec_vnops.c b/sys/fs/specfs/spec_vnops.c
index 24edc69..94b6c18 100644
--- a/sys/fs/specfs/spec_vnops.c
+++ b/sys/fs/specfs/spec_vnops.c
@@ -720,11 +720,10 @@ spec_getpages(ap)
bp->b_iodone = spec_getpages_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 = blkno;
bp->b_lblkno = blkno;
pbgetvp(ap->a_vp, bp);
diff --git a/sys/fs/unionfs/union_vfsops.c b/sys/fs/unionfs/union_vfsops.c
index 7f616cb..53c5ae6 100644
--- a/sys/fs/unionfs/union_vfsops.c
+++ b/sys/fs/unionfs/union_vfsops.c
@@ -223,8 +223,7 @@ union_mount(mp, path, data, ndp, td)
goto bad;
}
- um->um_cred = td->td_proc->p_ucred;
- crhold(um->um_cred);
+ um->um_cred = crhold(td->td_proc->p_ucred);
um->um_cmode = UN_DIRMODE &~ td->td_proc->p_fd->fd_cmask;
/*
OpenPOWER on IntegriCloud