diff options
author | jhb <jhb@FreeBSD.org> | 2001-10-11 23:38:17 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2001-10-11 23:38:17 +0000 |
commit | 4806d88677d2a333254f9fc33d4e119cc56bb002 (patch) | |
tree | d3ca87a8ac917d5003235cc737cd5f76591f7c1b /sys/nfsclient | |
parent | 9f68054d87b5538c76f0b802ef8f7344eedd5647 (diff) | |
download | FreeBSD-src-4806d88677d2a333254f9fc33d4e119cc56bb002.zip FreeBSD-src-4806d88677d2a333254f9fc33d4e119cc56bb002.tar.gz |
Change the kernel's ucred API as follows:
- crhold() returns a reference to the ucred whose refcount it bumps.
- crcopy() now simply copies the credentials from one credential to
another and has no return value.
- a new crshared() primitive is added which returns true if a ucred's
refcount is > 1 and false (0) otherwise.
Diffstat (limited to 'sys/nfsclient')
-rw-r--r-- | sys/nfsclient/nfs_bio.c | 18 | ||||
-rw-r--r-- | sys/nfsclient/nfs_vnops.c | 3 |
2 files changed, 7 insertions, 14 deletions
diff --git a/sys/nfsclient/nfs_bio.c b/sys/nfsclient/nfs_bio.c index bddec5d..fae952d 100644 --- a/sys/nfsclient/nfs_bio.c +++ b/sys/nfsclient/nfs_bio.c @@ -884,10 +884,8 @@ again: error = EINTR; break; } - if (bp->b_wcred == NOCRED) { - crhold(cred); - bp->b_wcred = cred; - } + if (bp->b_wcred == NOCRED) + bp->b_wcred = crhold(cred); np->n_flag |= NMODIFIED; /* @@ -1207,16 +1205,12 @@ again: } if (bp->b_iocmd == BIO_READ) { - if (bp->b_rcred == NOCRED && cred != NOCRED) { - crhold(cred); - bp->b_rcred = cred; - } + if (bp->b_rcred == NOCRED && cred != NOCRED) + bp->b_rcred = crhold(cred); } else { bp->b_flags |= B_WRITEINPROG; - if (bp->b_wcred == NOCRED && cred != NOCRED) { - crhold(cred); - bp->b_wcred = cred; - } + if (bp->b_wcred == NOCRED && cred != NOCRED) + bp->b_wcred = crhold(cred); } BUF_KERNPROC(bp); diff --git a/sys/nfsclient/nfs_vnops.c b/sys/nfsclient/nfs_vnops.c index ed57143..fdb0fca 100644 --- a/sys/nfsclient/nfs_vnops.c +++ b/sys/nfsclient/nfs_vnops.c @@ -2361,8 +2361,7 @@ nfs_sillyrename(struct vnode *dvp, struct vnode *vp, struct componentname *cnp) #endif MALLOC(sp, struct sillyrename *, sizeof (struct sillyrename), M_NFSREQ, M_WAITOK); - crhold(cnp->cn_cred); - sp->s_cred = cnp->cn_cred; + sp->s_cred = crhold(cnp->cn_cred); sp->s_dvp = dvp; VREF(dvp); |