summaryrefslogtreecommitdiffstats
path: root/sys/nfsserver/nfs_serv.c
diff options
context:
space:
mode:
authorjulian <julian@FreeBSD.org>2001-09-12 08:38:13 +0000
committerjulian <julian@FreeBSD.org>2001-09-12 08:38:13 +0000
commit5596676e6c6c1e81e899cd0531f9b1c28a292669 (patch)
treeb1a19fcdf05759281fab0d89efb13f0fdf42102e /sys/nfsserver/nfs_serv.c
parent83e00d4274950d2b531c24692cd123538ffbddb9 (diff)
downloadFreeBSD-src-5596676e6c6c1e81e899cd0531f9b1c28a292669.zip
FreeBSD-src-5596676e6c6c1e81e899cd0531f9b1c28a292669.tar.gz
KSE Milestone 2
Note ALL MODULES MUST BE RECOMPILED make the kernel aware that there are smaller units of scheduling than the process. (but only allow one thread per process at this time). This is functionally equivalent to teh previousl -current except that there is a thread associated with each process. Sorry john! (your next MFC will be a doosie!) Reviewed by: peter@freebsd.org, dillon@freebsd.org X-MFC after: ha ha ha ha
Diffstat (limited to 'sys/nfsserver/nfs_serv.c')
-rw-r--r--sys/nfsserver/nfs_serv.c292
1 files changed, 146 insertions, 146 deletions
diff --git a/sys/nfsserver/nfs_serv.c b/sys/nfsserver/nfs_serv.c
index e015d17..0469388 100644
--- a/sys/nfsserver/nfs_serv.c
+++ b/sys/nfsserver/nfs_serv.c
@@ -145,7 +145,7 @@ SYSCTL_INT(_vfs_nfs, OID_AUTO, commit_blks, CTLFLAG_RW, &nfs_commit_blks, 0, "")
SYSCTL_INT(_vfs_nfs, OID_AUTO, commit_miss, CTLFLAG_RW, &nfs_commit_miss, 0, "");
static int nfsrv_access __P((struct vnode *,int,struct ucred *,int,
- struct proc *, int));
+ struct thread *, int));
static void nfsrvw_coalesce __P((struct nfsrv_descript *,
struct nfsrv_descript *));
@@ -168,10 +168,10 @@ ndclear(struct nameidata *nd)
* nfs v3 access service
*/
int
-nfsrv3_access(nfsd, slp, procp, mrq)
+nfsrv3_access(nfsd, slp, td, mrq)
struct nfsrv_descript *nfsd;
struct nfssvc_sock *slp;
- struct proc *procp;
+ struct thread *td;
struct mbuf **mrq;
{
struct mbuf *mrep = nfsd->nd_mrep, *md = nfsd->nd_md;
@@ -208,7 +208,7 @@ nfsrv3_access(nfsd, slp, procp, mrq)
}
nfsmode = fxdr_unsigned(u_int32_t, *tl);
if ((nfsmode & NFSV3ACCESS_READ) &&
- nfsrv_access(vp, VREAD, cred, rdonly, procp, 0))
+ nfsrv_access(vp, VREAD, cred, rdonly, td, 0))
nfsmode &= ~NFSV3ACCESS_READ;
if (vp->v_type == VDIR)
testmode = (NFSV3ACCESS_MODIFY | NFSV3ACCESS_EXTEND |
@@ -216,16 +216,16 @@ nfsrv3_access(nfsd, slp, procp, mrq)
else
testmode = (NFSV3ACCESS_MODIFY | NFSV3ACCESS_EXTEND);
if ((nfsmode & testmode) &&
- nfsrv_access(vp, VWRITE, cred, rdonly, procp, 0))
+ nfsrv_access(vp, VWRITE, cred, rdonly, td, 0))
nfsmode &= ~testmode;
if (vp->v_type == VDIR)
testmode = NFSV3ACCESS_LOOKUP;
else
testmode = NFSV3ACCESS_EXECUTE;
if ((nfsmode & testmode) &&
- nfsrv_access(vp, VEXEC, cred, rdonly, procp, 0))
+ nfsrv_access(vp, VEXEC, cred, rdonly, td, 0))
nfsmode &= ~testmode;
- getret = VOP_GETATTR(vp, vap, cred, procp);
+ getret = VOP_GETATTR(vp, vap, cred, td);
vput(vp);
vp = NULL;
nfsm_reply(NFSX_POSTOPATTR(1) + NFSX_UNSIGNED);
@@ -242,10 +242,10 @@ nfsmout:
* nfs getattr service
*/
int
-nfsrv_getattr(nfsd, slp, procp, mrq)
+nfsrv_getattr(nfsd, slp, td, mrq)
struct nfsrv_descript *nfsd;
struct nfssvc_sock *slp;
- struct proc *procp;
+ struct thread *td;
struct mbuf **mrq;
{
struct mbuf *mrep = nfsd->nd_mrep, *md = nfsd->nd_md;
@@ -277,7 +277,7 @@ nfsrv_getattr(nfsd, slp, procp, mrq)
goto nfsmout;
}
nqsrv_getl(vp, ND_READ);
- error = VOP_GETATTR(vp, vap, cred, procp);
+ error = VOP_GETATTR(vp, vap, cred, td);
vput(vp);
vp = NULL;
nfsm_reply(NFSX_FATTR(nfsd->nd_flag & ND_NFSV3));
@@ -299,10 +299,10 @@ nfsmout:
* nfs setattr service
*/
int
-nfsrv_setattr(nfsd, slp, procp, mrq)
+nfsrv_setattr(nfsd, slp, td, mrq)
struct nfsrv_descript *nfsd;
struct nfssvc_sock *slp;
- struct proc *procp;
+ struct thread *td;
struct mbuf **mrq;
{
struct mbuf *mrep = nfsd->nd_mrep, *md = nfsd->nd_md;
@@ -399,7 +399,7 @@ nfsrv_setattr(nfsd, slp, procp, mrq)
nqsrv_getl(vp, ND_WRITE);
if (v3) {
- error = preat_ret = VOP_GETATTR(vp, &preat, cred, procp);
+ error = preat_ret = VOP_GETATTR(vp, &preat, cred, td);
if (!error && gcheck &&
(preat.va_ctime.tv_sec != guard.tv_sec ||
preat.va_ctime.tv_nsec != guard.tv_nsec))
@@ -428,11 +428,11 @@ nfsrv_setattr(nfsd, slp, procp, mrq)
error = EISDIR;
goto out;
} else if ((error = nfsrv_access(vp, VWRITE, cred, rdonly,
- procp, 0)) != 0)
+ td, 0)) != 0)
goto out;
}
- error = VOP_SETATTR(vp, vap, cred, procp);
- postat_ret = VOP_GETATTR(vp, vap, cred, procp);
+ error = VOP_SETATTR(vp, vap, cred, td);
+ postat_ret = VOP_GETATTR(vp, vap, cred, td);
if (!error)
error = postat_ret;
out:
@@ -462,10 +462,10 @@ nfsmout:
* nfs lookup rpc
*/
int
-nfsrv_lookup(nfsd, slp, procp, mrq)
+nfsrv_lookup(nfsd, slp, td, mrq)
struct nfsrv_descript *nfsd;
struct nfssvc_sock *slp;
- struct proc *procp;
+ struct thread *td;
struct mbuf **mrq;
{
struct mbuf *mrep = nfsd->nd_mrep, *md = nfsd->nd_md;
@@ -501,7 +501,7 @@ nfsrv_lookup(nfsd, slp, procp, mrq)
nd.ni_cnd.cn_nameiop = LOOKUP;
nd.ni_cnd.cn_flags = LOCKLEAF | SAVESTART;
error = nfs_namei(&nd, fhp, len, slp, nam, &md, &dpos,
- &dirp, procp, (nfsd->nd_flag & ND_KERBAUTH), pubflag);
+ &dirp, td, (nfsd->nd_flag & ND_KERBAUTH), pubflag);
/*
* namei failure, only dirp to cleanup. Clear out garbarge from
@@ -512,7 +512,7 @@ nfsrv_lookup(nfsd, slp, procp, mrq)
if (dirp) {
if (v3)
dirattr_ret = VOP_GETATTR(dirp, &dirattr, cred,
- procp);
+ td);
vrele(dirp);
dirp = NULL;
}
@@ -544,7 +544,7 @@ nfsrv_lookup(nfsd, slp, procp, mrq)
* via the original nd. Confused? You aren't alone!
*/
ind = nd;
- VOP_UNLOCK(nd.ni_vp, 0, procp);
+ VOP_UNLOCK(nd.ni_vp, 0, td);
ind.ni_pathlen = strlen(nfs_pub.np_index);
ind.ni_cnd.cn_nameptr = ind.ni_cnd.cn_pnbuf =
nfs_pub.np_index;
@@ -586,7 +586,7 @@ nfsrv_lookup(nfsd, slp, procp, mrq)
if (dirp) {
if (v3)
dirattr_ret = VOP_GETATTR(dirp, &dirattr, cred,
- procp);
+ td);
vrele(dirp);
dirp = NULL;
}
@@ -624,7 +624,7 @@ nfsrv_lookup(nfsd, slp, procp, mrq)
fhp->fh_fsid = vp->v_mount->mnt_stat.f_fsid;
error = VFS_VPTOFH(vp, &fhp->fh_fid);
if (!error)
- error = VOP_GETATTR(vp, vap, cred, procp);
+ error = VOP_GETATTR(vp, vap, cred, td);
vput(vp);
ndp->ni_vp = NULL;
@@ -658,10 +658,10 @@ nfsmout:
* nfs readlink service
*/
int
-nfsrv_readlink(nfsd, slp, procp, mrq)
+nfsrv_readlink(nfsd, slp, td, mrq)
struct nfsrv_descript *nfsd;
struct nfssvc_sock *slp;
- struct proc *procp;
+ struct thread *td;
struct mbuf **mrq;
{
struct mbuf *mrep = nfsd->nd_mrep, *md = nfsd->nd_md;
@@ -720,7 +720,7 @@ nfsrv_readlink(nfsd, slp, procp, mrq)
uiop->uio_resid = len;
uiop->uio_rw = UIO_READ;
uiop->uio_segflg = UIO_SYSSPACE;
- uiop->uio_procp = (struct proc *)0;
+ uiop->uio_td = (struct thread *)0;
error = nfsrv_fhtovp(fhp, 1, &vp, cred, slp, nam,
&rdonly, (nfsd->nd_flag & ND_KERBAUTH), TRUE);
if (error) {
@@ -739,7 +739,7 @@ nfsrv_readlink(nfsd, slp, procp, mrq)
nqsrv_getl(vp, ND_READ);
error = VOP_READLINK(vp, uiop, cred);
out:
- getret = VOP_GETATTR(vp, &attr, cred, procp);
+ getret = VOP_GETATTR(vp, &attr, cred, td);
vput(vp);
vp = NULL;
nfsm_reply(NFSX_POSTOPATTR(v3) + NFSX_UNSIGNED);
@@ -771,10 +771,10 @@ nfsmout:
* nfs read service
*/
int
-nfsrv_read(nfsd, slp, procp, mrq)
+nfsrv_read(nfsd, slp, td, mrq)
struct nfsrv_descript *nfsd;
struct nfssvc_sock *slp;
- struct proc *procp;
+ struct thread *td;
struct mbuf **mrq;
{
struct mbuf *mrep = nfsd->nd_mrep, *md = nfsd->nd_md;
@@ -840,10 +840,10 @@ nfsrv_read(nfsd, slp, procp, mrq)
}
if (!error) {
nqsrv_getl(vp, ND_READ);
- if ((error = nfsrv_access(vp, VREAD, cred, rdonly, procp, 1)) != 0)
- error = nfsrv_access(vp, VEXEC, cred, rdonly, procp, 1);
+ if ((error = nfsrv_access(vp, VREAD, cred, rdonly, td, 1)) != 0)
+ error = nfsrv_access(vp, VEXEC, cred, rdonly, td, 1);
}
- getret = VOP_GETATTR(vp, vap, cred, procp);
+ getret = VOP_GETATTR(vp, vap, cred, td);
if (!error)
error = getret;
if (error) {
@@ -982,7 +982,7 @@ nfsrv_read(nfsd, slp, procp, mrq)
off = uiop->uio_offset;
nh->nh_nextr = off;
FREE((caddr_t)iv2, M_TEMP);
- if (error || (getret = VOP_GETATTR(vp, vap, cred, procp))) {
+ if (error || (getret = VOP_GETATTR(vp, vap, cred, td))) {
if (!error)
error = getret;
m_freem(mreq);
@@ -1022,10 +1022,10 @@ nfsmout:
* nfs write service
*/
int
-nfsrv_write(nfsd, slp, procp, mrq)
+nfsrv_write(nfsd, slp, td, mrq)
struct nfsrv_descript *nfsd;
struct nfssvc_sock *slp;
- struct proc *procp;
+ struct thread *td;
struct mbuf **mrq;
{
struct mbuf *mrep = nfsd->nd_mrep, *md = nfsd->nd_md;
@@ -1137,7 +1137,7 @@ nfsrv_write(nfsd, slp, procp, mrq)
goto nfsmout;
}
if (v3)
- forat_ret = VOP_GETATTR(vp, &forat, cred, procp);
+ forat_ret = VOP_GETATTR(vp, &forat, cred, td);
if (vp->v_type != VREG) {
if (v3)
error = EINVAL;
@@ -1146,7 +1146,7 @@ nfsrv_write(nfsd, slp, procp, mrq)
}
if (!error) {
nqsrv_getl(vp, ND_WRITE);
- error = nfsrv_access(vp, VWRITE, cred, rdonly, procp, 1);
+ error = nfsrv_access(vp, VWRITE, cred, rdonly, td, 1);
}
if (error) {
vput(vp);
@@ -1188,13 +1188,13 @@ nfsrv_write(nfsd, slp, procp, mrq)
uiop->uio_resid = len;
uiop->uio_rw = UIO_WRITE;
uiop->uio_segflg = UIO_SYSSPACE;
- uiop->uio_procp = (struct proc *)0;
+ uiop->uio_td = (struct thread *)0;
uiop->uio_offset = off;
error = VOP_WRITE(vp, uiop, ioflags, cred);
nfsstats.srvvop_writes++;
FREE((caddr_t)iv, M_TEMP);
}
- aftat_ret = VOP_GETATTR(vp, vap, cred, procp);
+ aftat_ret = VOP_GETATTR(vp, vap, cred, td);
vput(vp);
vp = NULL;
if (!error)
@@ -1246,10 +1246,10 @@ nfsmout:
* Jan. 1994.
*/
int
-nfsrv_writegather(ndp, slp, procp, mrq)
+nfsrv_writegather(ndp, slp, td, mrq)
struct nfsrv_descript **ndp;
struct nfssvc_sock *slp;
- struct proc *procp;
+ struct thread *td;
struct mbuf **mrq;
{
register struct iovec *ivp;
@@ -1427,7 +1427,7 @@ loop1:
nfsd->nd_nam, &rdonly, (nfsd->nd_flag & ND_KERBAUTH), TRUE);
if (!error) {
if (v3)
- forat_ret = VOP_GETATTR(vp, &forat, cred, procp);
+ forat_ret = VOP_GETATTR(vp, &forat, cred, td);
if (vp->v_type != VREG) {
if (v3)
error = EINVAL;
@@ -1439,7 +1439,7 @@ loop1:
}
if (!error) {
nqsrv_getl(vp, ND_WRITE);
- error = nfsrv_access(vp, VWRITE, cred, rdonly, procp, 1);
+ error = nfsrv_access(vp, VWRITE, cred, rdonly, td, 1);
}
if (nfsd->nd_stable == NFSV3WRITE_UNSTABLE)
@@ -1450,7 +1450,7 @@ loop1:
ioflags = (IO_METASYNC | IO_SYNC | IO_NODELOCKED);
uiop->uio_rw = UIO_WRITE;
uiop->uio_segflg = UIO_SYSSPACE;
- uiop->uio_procp = (struct proc *)0;
+ uiop->uio_td = (struct thread *)0;
uiop->uio_offset = nfsd->nd_off;
uiop->uio_resid = nfsd->nd_eoff - nfsd->nd_off;
if (uiop->uio_resid > 0) {
@@ -1476,9 +1476,9 @@ loop1:
}
if (!error) {
if (vn_start_write(vp, &mntp, V_NOWAIT) != 0) {
- VOP_UNLOCK(vp, 0, procp);
+ VOP_UNLOCK(vp, 0, td);
error = vn_start_write(NULL, &mntp, V_WAIT);
- vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, procp);
+ vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
}
}
if (!error) {
@@ -1490,7 +1490,7 @@ loop1:
}
m_freem(mrep);
if (vp) {
- aftat_ret = VOP_GETATTR(vp, &va, cred, procp);
+ aftat_ret = VOP_GETATTR(vp, &va, cred, td);
vput(vp);
vp = NULL;
}
@@ -1631,10 +1631,10 @@ nfsrvw_coalesce(owp, nfsd)
* now does a truncate to 0 length via. setattr if it already exists
*/
int
-nfsrv_create(nfsd, slp, procp, mrq)
+nfsrv_create(nfsd, slp, td, mrq)
struct nfsrv_descript *nfsd;
struct nfssvc_sock *slp;
- struct proc *procp;
+ struct thread *td;
struct mbuf **mrq;
{
struct mbuf *mrep = nfsd->nd_mrep, *md = nfsd->nd_md;
@@ -1696,11 +1696,11 @@ nfsrv_create(nfsd, slp, procp, mrq)
* prior to calling nfsm_reply ( which might goto nfsmout ).
*/
error = nfs_namei(&nd, fhp, len, slp, nam, &md, &dpos,
- &dirp, procp, (nfsd->nd_flag & ND_KERBAUTH), FALSE);
+ &dirp, td, (nfsd->nd_flag & ND_KERBAUTH), FALSE);
if (dirp) {
if (v3) {
dirfor_ret = VOP_GETATTR(dirp, &dirfor, cred,
- procp);
+ td);
} else {
vrele(dirp);
dirp = NULL;
@@ -1793,7 +1793,7 @@ nfsrv_create(nfsd, slp, procp, mrq)
bcopy(cverf, (caddr_t)&vap->va_atime,
NFSX_V3CREATEVERF);
error = VOP_SETATTR(nd.ni_vp, vap, cred,
- procp);
+ td);
}
}
} else if (
@@ -1836,7 +1836,7 @@ nfsrv_create(nfsd, slp, procp, mrq)
*/
nd.ni_cnd.cn_nameiop = LOOKUP;
nd.ni_cnd.cn_flags &= ~(LOCKPARENT);
- nd.ni_cnd.cn_proc = procp;
+ nd.ni_cnd.cn_thread = td;
nd.ni_cnd.cn_cred = cred;
error = lookup(&nd);
@@ -1857,14 +1857,14 @@ nfsrv_create(nfsd, slp, procp, mrq)
} else {
if (vap->va_size != -1) {
error = nfsrv_access(nd.ni_vp, VWRITE, cred,
- (nd.ni_cnd.cn_flags & RDONLY), procp, 0);
+ (nd.ni_cnd.cn_flags & RDONLY), td, 0);
if (!error) {
nqsrv_getl(nd.ni_vp, ND_WRITE);
tempsize = vap->va_size;
VATTR_NULL(vap);
vap->va_size = tempsize;
error = VOP_SETATTR(nd.ni_vp, vap, cred,
- procp);
+ td);
}
}
}
@@ -1874,13 +1874,13 @@ nfsrv_create(nfsd, slp, procp, mrq)
fhp->fh_fsid = nd.ni_vp->v_mount->mnt_stat.f_fsid;
error = VFS_VPTOFH(nd.ni_vp, &fhp->fh_fid);
if (!error)
- error = VOP_GETATTR(nd.ni_vp, vap, cred, procp);
+ error = VOP_GETATTR(nd.ni_vp, vap, cred, td);
}
if (v3) {
if (exclusive_flag && !error &&
bcmp(cverf, (caddr_t)&vap->va_atime, NFSX_V3CREATEVERF))
error = EEXIST;
- diraft_ret = VOP_GETATTR(dirp, &diraft, cred, procp);
+ diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td);
vrele(dirp);
dirp = NULL;
}
@@ -1930,10 +1930,10 @@ nfsmout:
* nfs v3 mknod service
*/
int
-nfsrv_mknod(nfsd, slp, procp, mrq)
+nfsrv_mknod(nfsd, slp, td, mrq)
struct nfsrv_descript *nfsd;
struct nfssvc_sock *slp;
- struct proc *procp;
+ struct thread *td;
struct mbuf **mrq;
{
struct mbuf *mrep = nfsd->nd_mrep, *md = nfsd->nd_md;
@@ -1986,9 +1986,9 @@ nfsrv_mknod(nfsd, slp, procp, mrq)
*/
error = nfs_namei(&nd, fhp, len, slp, nam, &md, &dpos,
- &dirp, procp, (nfsd->nd_flag & ND_KERBAUTH), FALSE);
+ &dirp, td, (nfsd->nd_flag & ND_KERBAUTH), FALSE);
if (dirp)
- dirfor_ret = VOP_GETATTR(dirp, &dirfor, cred, procp);
+ dirfor_ret = VOP_GETATTR(dirp, &dirfor, cred, td);
if (error) {
nfsm_reply(NFSX_WCCDATA(1));
nfsm_srvwcc_data(dirfor_ret, &dirfor, diraft_ret, &diraft);
@@ -2046,8 +2046,8 @@ nfsrv_mknod(nfsd, slp, procp, mrq)
nd.ni_cnd.cn_nameiop = LOOKUP;
nd.ni_cnd.cn_flags &= ~(LOCKPARENT);
- nd.ni_cnd.cn_proc = procp;
- nd.ni_cnd.cn_cred = procp->p_ucred;
+ nd.ni_cnd.cn_thread = td;
+ nd.ni_cnd.cn_cred = td->td_proc->p_ucred;
error = lookup(&nd);
nd.ni_dvp = NULL;
@@ -2080,12 +2080,12 @@ out:
fhp->fh_fsid = vp->v_mount->mnt_stat.f_fsid;
error = VFS_VPTOFH(vp, &fhp->fh_fid);
if (!error)
- error = VOP_GETATTR(vp, vap, cred, procp);
+ error = VOP_GETATTR(vp, vap, cred, td);
vput(vp);
vp = NULL;
nd.ni_vp = NULL;
}
- diraft_ret = VOP_GETATTR(dirp, &diraft, cred, procp);
+ diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td);
if (dirp) {
vrele(dirp);
dirp = NULL;
@@ -2121,10 +2121,10 @@ nfsmout:
* nfs remove service
*/
int
-nfsrv_remove(nfsd, slp, procp, mrq)
+nfsrv_remove(nfsd, slp, td, mrq)
struct nfsrv_descript *nfsd;
struct nfssvc_sock *slp;
- struct proc *procp;
+ struct thread *td;
struct mbuf **mrq;
{
struct mbuf *mrep = nfsd->nd_mrep, *md = nfsd->nd_md;
@@ -2169,11 +2169,11 @@ nfsrv_remove(nfsd, slp, procp, mrq)
nd.ni_cnd.cn_nameiop = DELETE;
nd.ni_cnd.cn_flags = LOCKPARENT | LOCKLEAF;
error = nfs_namei(&nd, fhp, len, slp, nam, &md, &dpos,
- &dirp, procp, (nfsd->nd_flag & ND_KERBAUTH), FALSE);
+ &dirp, td, (nfsd->nd_flag & ND_KERBAUTH), FALSE);
if (dirp) {
if (v3) {
dirfor_ret = VOP_GETATTR(dirp, &dirfor, cred,
- procp);
+ td);
} else {
vrele(dirp);
dirp = NULL;
@@ -2200,7 +2200,7 @@ out:
}
}
if (dirp && v3) {
- diraft_ret = VOP_GETATTR(dirp, &diraft, cred, procp);
+ diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td);
vrele(dirp);
dirp = NULL;
}
@@ -2228,10 +2228,10 @@ nfsmout:
* nfs rename service
*/
int
-nfsrv_rename(nfsd, slp, procp, mrq)
+nfsrv_rename(nfsd, slp, td, mrq)
struct nfsrv_descript *nfsd;
struct nfssvc_sock *slp;
- struct proc *procp;
+ struct thread *td;
struct mbuf **mrq;
{
struct mbuf *mrep = nfsd->nd_mrep, *md = nfsd->nd_md;
@@ -2293,11 +2293,11 @@ nfsrv_rename(nfsd, slp, procp, mrq)
fromnd.ni_cnd.cn_nameiop = DELETE;
fromnd.ni_cnd.cn_flags = WANTPARENT | SAVESTART;
error = nfs_namei(&fromnd, ffhp, len, slp, nam, &md,
- &dpos, &fdirp, procp, (nfsd->nd_flag & ND_KERBAUTH), FALSE);
+ &dpos, &fdirp, td, (nfsd->nd_flag & ND_KERBAUTH), FALSE);
if (fdirp) {
if (v3) {
fdirfor_ret = VOP_GETATTR(fdirp, &fdirfor, cred,
- procp);
+ td);
} else {
vrele(fdirp);
fdirp = NULL;
@@ -2318,11 +2318,11 @@ nfsrv_rename(nfsd, slp, procp, mrq)
tond.ni_cnd.cn_nameiop = RENAME;
tond.ni_cnd.cn_flags = LOCKPARENT | LOCKLEAF | NOCACHE | SAVESTART;
error = nfs_namei(&tond, tfhp, len2, slp, nam, &md,
- &dpos, &tdirp, procp, (nfsd->nd_flag & ND_KERBAUTH), FALSE);
+ &dpos, &tdirp, td, (nfsd->nd_flag & ND_KERBAUTH), FALSE);
if (tdirp) {
if (v3) {
tdirfor_ret = VOP_GETATTR(tdirp, &tdirfor, cred,
- procp);
+ td);
} else {
vrele(tdirp);
tdirp = NULL;
@@ -2415,9 +2415,9 @@ out:
out1:
if (fdirp)
- fdiraft_ret = VOP_GETATTR(fdirp, &fdiraft, cred, procp);
+ fdiraft_ret = VOP_GETATTR(fdirp, &fdiraft, cred, td);
if (tdirp)
- tdiraft_ret = VOP_GETATTR(tdirp, &tdiraft, cred, procp);
+ tdiraft_ret = VOP_GETATTR(tdirp, &tdiraft, cred, td);
nfsm_reply(2 * NFSX_WCCDATA(v3));
if (v3) {
nfsm_srvwcc_data(fdirfor_ret, &fdirfor, fdiraft_ret, &fdiraft);
@@ -2465,10 +2465,10 @@ nfsmout:
* nfs link service
*/
int
-nfsrv_link(nfsd, slp, procp, mrq)
+nfsrv_link(nfsd, slp, td, mrq)
struct nfsrv_descript *nfsd;
struct nfssvc_sock *slp;
- struct proc *procp;
+ struct thread *td;
struct mbuf **mrq;
{
struct mbuf *mrep = nfsd->nd_mrep, *md = nfsd->nd_md;
@@ -2528,11 +2528,11 @@ nfsrv_link(nfsd, slp, procp, mrq)
nd.ni_cnd.cn_nameiop = CREATE;
nd.ni_cnd.cn_flags = LOCKPARENT;
error = nfs_namei(&nd, dfhp, len, slp, nam, &md, &dpos,
- &dirp, procp, (nfsd->nd_flag & ND_KERBAUTH), FALSE);
+ &dirp, td, (nfsd->nd_flag & ND_KERBAUTH), FALSE);
if (dirp) {
if (v3) {
dirfor_ret = VOP_GETATTR(dirp, &dirfor, cred,
- procp);
+ td);
} else {
vrele(dirp);
dirp = NULL;
@@ -2560,9 +2560,9 @@ out:
out1:
if (v3)
- getret = VOP_GETATTR(vp, &at, cred, procp);
+ getret = VOP_GETATTR(vp, &at, cred, td);
if (dirp)
- diraft_ret = VOP_GETATTR(dirp, &diraft, cred, procp);
+ diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td);
ereply:
nfsm_reply(NFSX_POSTOPATTR(v3) + NFSX_WCCDATA(v3));
if (v3) {
@@ -2594,10 +2594,10 @@ nfsmout:
* nfs symbolic link service
*/
int
-nfsrv_symlink(nfsd, slp, procp, mrq)
+nfsrv_symlink(nfsd, slp, td, mrq)
struct nfsrv_descript *nfsd;
struct nfssvc_sock *slp;
- struct proc *procp;
+ struct thread *td;
struct mbuf **mrq;
{
struct mbuf *mrep = nfsd->nd_mrep, *md = nfsd->nd_md;
@@ -2644,11 +2644,11 @@ nfsrv_symlink(nfsd, slp, procp, mrq)
nd.ni_cnd.cn_nameiop = CREATE;
nd.ni_cnd.cn_flags = LOCKPARENT | SAVESTART;
error = nfs_namei(&nd, fhp, len, slp, nam, &md, &dpos,
- &dirp, procp, (nfsd->nd_flag & ND_KERBAUTH), FALSE);
+ &dirp, td, (nfsd->nd_flag & ND_KERBAUTH), FALSE);
if (dirp) {
if (v3) {
dirfor_ret = VOP_GETATTR(dirp, &dirfor, cred,
- procp);
+ td);
} else {
vrele(dirp);
dirp = NULL;
@@ -2670,7 +2670,7 @@ nfsrv_symlink(nfsd, slp, procp, mrq)
io.uio_iovcnt = 1;
io.uio_segflg = UIO_SYSSPACE;
io.uio_rw = UIO_READ;
- io.uio_procp = (struct proc *)0;
+ io.uio_td = (struct thread *)0;
nfsm_mtouio(&io, len2);
if (!v3) {
nfsm_dissect(sp, struct nfsv2_sattr *, NFSX_V2SATTR);
@@ -2712,7 +2712,7 @@ nfsrv_symlink(nfsd, slp, procp, mrq)
nd.ni_cnd.cn_nameiop = LOOKUP;
nd.ni_cnd.cn_flags &= ~(LOCKPARENT | FOLLOW);
nd.ni_cnd.cn_flags |= (NOFOLLOW | LOCKLEAF);
- nd.ni_cnd.cn_proc = procp;
+ nd.ni_cnd.cn_thread = td;
nd.ni_cnd.cn_cred = cred;
error = lookup(&nd);
@@ -2724,7 +2724,7 @@ nfsrv_symlink(nfsd, slp, procp, mrq)
error = VFS_VPTOFH(nd.ni_vp, &fhp->fh_fid);
if (!error)
error = VOP_GETATTR(nd.ni_vp, vap, cred,
- procp);
+ td);
vput(nd.ni_vp);
nd.ni_vp = NULL;
}
@@ -2740,7 +2740,7 @@ out:
pathcp = NULL;
}
if (dirp) {
- diraft_ret = VOP_GETATTR(dirp, &diraft, cred, procp);
+ diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td);
vrele(dirp);
dirp = NULL;
}
@@ -2784,10 +2784,10 @@ nfsmout:
* nfs mkdir service
*/
int
-nfsrv_mkdir(nfsd, slp, procp, mrq)
+nfsrv_mkdir(nfsd, slp, td, mrq)
struct nfsrv_descript *nfsd;
struct nfssvc_sock *slp;
- struct proc *procp;
+ struct thread *td;
struct mbuf **mrq;
{
struct mbuf *mrep = nfsd->nd_mrep, *md = nfsd->nd_md;
@@ -2836,11 +2836,11 @@ nfsrv_mkdir(nfsd, slp, procp, mrq)
nd.ni_cnd.cn_flags = LOCKPARENT;
error = nfs_namei(&nd, fhp, len, slp, nam, &md, &dpos,
- &dirp, procp, (nfsd->nd_flag & ND_KERBAUTH), FALSE);
+ &dirp, td, (nfsd->nd_flag & ND_KERBAUTH), FALSE);
if (dirp) {
if (v3) {
dirfor_ret = VOP_GETATTR(dirp, &dirfor, cred,
- procp);
+ td);
} else {
vrele(dirp);
dirp = NULL;
@@ -2890,11 +2890,11 @@ nfsrv_mkdir(nfsd, slp, procp, mrq)
fhp->fh_fsid = nd.ni_vp->v_mount->mnt_stat.f_fsid;
error = VFS_VPTOFH(nd.ni_vp, &fhp->fh_fid);
if (!error)
- error = VOP_GETATTR(nd.ni_vp, vap, cred, procp);
+ error = VOP_GETATTR(nd.ni_vp, vap, cred, td);
}
out:
if (dirp)
- diraft_ret = VOP_GETATTR(dirp, &diraft, cred, procp);
+ diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td);
nfsm_reply(NFSX_SRVFH(v3) + NFSX_POSTOPATTR(v3) + NFSX_WCCDATA(v3));
if (v3) {
if (!error) {
@@ -2935,10 +2935,10 @@ nfsmout:
* nfs rmdir service
*/
int
-nfsrv_rmdir(nfsd, slp, procp, mrq)
+nfsrv_rmdir(nfsd, slp, td, mrq)
struct nfsrv_descript *nfsd;
struct nfssvc_sock *slp;
- struct proc *procp;
+ struct thread *td;
struct mbuf **mrq;
{
struct mbuf *mrep = nfsd->nd_mrep, *md = nfsd->nd_md;
@@ -2981,11 +2981,11 @@ nfsrv_rmdir(nfsd, slp, procp, mrq)
nd.ni_cnd.cn_nameiop = DELETE;
nd.ni_cnd.cn_flags = LOCKPARENT | LOCKLEAF;
error = nfs_namei(&nd, fhp, len, slp, nam, &md, &dpos,
- &dirp, procp, (nfsd->nd_flag & ND_KERBAUTH), FALSE);
+ &dirp, td, (nfsd->nd_flag & ND_KERBAUTH), FALSE);
if (dirp) {
if (v3) {
dirfor_ret = VOP_GETATTR(dirp, &dirfor, cred,
- procp);
+ td);
} else {
vrele(dirp);
dirp = NULL;
@@ -3027,7 +3027,7 @@ out:
NDFREE(&nd, NDF_ONLY_PNBUF);
if (dirp)
- diraft_ret = VOP_GETATTR(dirp, &diraft, cred, procp);
+ diraft_ret = VOP_GETATTR(dirp, &diraft, cred, td);
nfsm_reply(NFSX_WCCDATA(v3));
if (v3) {
nfsm_srvwcc_data(dirfor_ret, &dirfor, diraft_ret, &diraft);
@@ -3091,10 +3091,10 @@ struct flrep {
};
int
-nfsrv_readdir(nfsd, slp, procp, mrq)
+nfsrv_readdir(nfsd, slp, td, mrq)
struct nfsrv_descript *nfsd;
struct nfssvc_sock *slp;
- struct proc *procp;
+ struct thread *td;
struct mbuf **mrq;
{
struct mbuf *mrep = nfsd->nd_mrep, *md = nfsd->nd_md;
@@ -3163,7 +3163,7 @@ nfsrv_readdir(nfsd, slp, procp, mrq)
nqsrv_getl(vp, ND_READ);
if (v3) {
- error = getret = VOP_GETATTR(vp, &at, cred, procp);
+ error = getret = VOP_GETATTR(vp, &at, cred, td);
#if 0
/*
* XXX This check may be too strict for Solaris 2.5 clients.
@@ -3173,7 +3173,7 @@ nfsrv_readdir(nfsd, slp, procp, mrq)
#endif
}
if (!error)
- error = nfsrv_access(vp, VEXEC, cred, rdonly, procp, 0);
+ error = nfsrv_access(vp, VEXEC, cred, rdonly, td, 0);
if (error) {
vput(vp);
vp = NULL;
@@ -3182,7 +3182,7 @@ nfsrv_readdir(nfsd, slp, procp, mrq)
error = 0;
goto nfsmout;
}
- VOP_UNLOCK(vp, 0, procp);
+ VOP_UNLOCK(vp, 0, td);
/*
* end section. Allocate rbuf and continue
@@ -3197,9 +3197,9 @@ again:
io.uio_resid = fullsiz;
io.uio_segflg = UIO_SYSSPACE;
io.uio_rw = UIO_READ;
- io.uio_procp = (struct proc *)0;
+ io.uio_td = (struct thread *)0;
eofflag = 0;
- vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, procp);
+ vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
if (cookies) {
free((caddr_t)cookies, M_TEMP);
cookies = NULL;
@@ -3209,11 +3209,11 @@ again:
if (!cookies && !error)
error = NFSERR_PERM;
if (v3) {
- getret = VOP_GETATTR(vp, &at, cred, procp);
+ getret = VOP_GETATTR(vp, &at, cred, td);
if (!error)
error = getret;
}
- VOP_UNLOCK(vp, 0, procp);
+ VOP_UNLOCK(vp, 0, td);
if (error) {
vrele(vp);
vp = NULL;
@@ -3384,10 +3384,10 @@ nfsmout:
}
int
-nfsrv_readdirplus(nfsd, slp, procp, mrq)
+nfsrv_readdirplus(nfsd, slp, td, mrq)
struct nfsrv_descript *nfsd;
struct nfssvc_sock *slp;
- struct proc *procp;
+ struct thread *td;
struct mbuf **mrq;
{
struct mbuf *mrep = nfsd->nd_mrep, *md = nfsd->nd_md;
@@ -3445,7 +3445,7 @@ nfsrv_readdirplus(nfsd, slp, procp, mrq)
error = 0;
goto nfsmout;
}
- error = getret = VOP_GETATTR(vp, &at, cred, procp);
+ error = getret = VOP_GETATTR(vp, &at, cred, td);
#if 0
/*
* XXX This check may be too strict for Solaris 2.5 clients.
@@ -3455,7 +3455,7 @@ nfsrv_readdirplus(nfsd, slp, procp, mrq)
#endif
if (!error) {
nqsrv_getl(vp, ND_READ);
- error = nfsrv_access(vp, VEXEC, cred, rdonly, procp, 0);
+ error = nfsrv_access(vp, VEXEC, cred, rdonly, td, 0);
}
if (error) {
vput(vp);
@@ -3465,7 +3465,7 @@ nfsrv_readdirplus(nfsd, slp, procp, mrq)
error = 0;
goto nfsmout;
}
- VOP_UNLOCK(vp, 0, procp);
+ VOP_UNLOCK(vp, 0, td);
MALLOC(rbuf, caddr_t, siz, M_TEMP, M_WAITOK);
again:
iv.iov_base = rbuf;
@@ -3476,17 +3476,17 @@ again:
io.uio_resid = fullsiz;
io.uio_segflg = UIO_SYSSPACE;
io.uio_rw = UIO_READ;
- io.uio_procp = (struct proc *)0;
+ io.uio_td = (struct thread *)0;
eofflag = 0;
- vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, procp);
+ vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
if (cookies) {
free((caddr_t)cookies, M_TEMP);
cookies = NULL;
}
error = VOP_READDIR(vp, &io, cred, &eofflag, &ncookies, &cookies);
off = (u_quad_t)io.uio_offset;
- getret = VOP_GETATTR(vp, &at, cred, procp);
- VOP_UNLOCK(vp, 0, procp);
+ getret = VOP_GETATTR(vp, &at, cred, td);
+ VOP_UNLOCK(vp, 0, td);
if (!cookies && !error)
error = NFSERR_PERM;
if (!error)
@@ -3603,7 +3603,7 @@ again:
nvp = NULL;
goto invalid;
}
- if (VOP_GETATTR(nvp, vap, cred, procp)) {
+ if (VOP_GETATTR(nvp, vap, cred, td)) {
vput(nvp);
nvp = NULL;
goto invalid;
@@ -3721,10 +3721,10 @@ nfsmout:
* nfs commit service
*/
int
-nfsrv_commit(nfsd, slp, procp, mrq)
+nfsrv_commit(nfsd, slp, td, mrq)
struct nfsrv_descript *nfsd;
struct nfssvc_sock *slp;
- struct proc *procp;
+ struct thread *td;
struct mbuf **mrq;
{
struct mbuf *mrep = nfsd->nd_mrep, *md = nfsd->nd_md;
@@ -3778,7 +3778,7 @@ nfsrv_commit(nfsd, slp, procp, mrq)
error = 0;
goto nfsmout;
}
- for_ret = VOP_GETATTR(vp, &bfor, cred, procp);
+ for_ret = VOP_GETATTR(vp, &bfor, cred, td);
if (cnt > MAX_COMMIT_COUNT) {
/*
@@ -3788,7 +3788,7 @@ nfsrv_commit(nfsd, slp, procp, mrq)
(vp->v_object->flags & OBJ_MIGHTBEDIRTY)) {
vm_object_page_clean(vp->v_object, 0, 0, OBJPC_SYNC);
}
- error = VOP_FSYNC(vp, cred, MNT_WAIT, procp);
+ error = VOP_FSYNC(vp, cred, MNT_WAIT, td);
} else {
/*
* Locate and synchronously write any buffers that fall
@@ -3846,7 +3846,7 @@ nfsrv_commit(nfsd, slp, procp, mrq)
splx(s);
}
- aft_ret = VOP_GETATTR(vp, &aft, cred, procp);
+ aft_ret = VOP_GETATTR(vp, &aft, cred, td);
vput(vp);
vp = NULL;
ereply:
@@ -3872,10 +3872,10 @@ nfsmout:
* nfs statfs service
*/
int
-nfsrv_statfs(nfsd, slp, procp, mrq)
+nfsrv_statfs(nfsd, slp, td, mrq)
struct nfsrv_descript *nfsd;
struct nfssvc_sock *slp;
- struct proc *procp;
+ struct thread *td;
struct mbuf **mrq;
{
struct mbuf *mrep = nfsd->nd_mrep, *md = nfsd->nd_md;
@@ -3913,8 +3913,8 @@ nfsrv_statfs(nfsd, slp, procp, mrq)
goto nfsmout;
}
sf = &statfs;
- error = VFS_STATFS(vp->v_mount, sf, procp);
- getret = VOP_GETATTR(vp, &at, cred, procp);
+ error = VFS_STATFS(vp->v_mount, sf, td);
+ getret = VOP_GETATTR(vp, &at, cred, td);
vput(vp);
vp = NULL;
nfsm_reply(NFSX_POSTOPATTR(v3) + NFSX_STATFS(v3));
@@ -3959,10 +3959,10 @@ nfsmout:
* nfs fsinfo service
*/
int
-nfsrv_fsinfo(nfsd, slp, procp, mrq)
+nfsrv_fsinfo(nfsd, slp, td, mrq)
struct nfsrv_descript *nfsd;
struct nfssvc_sock *slp;
- struct proc *procp;
+ struct thread *td;
struct mbuf **mrq;
{
struct mbuf *mrep = nfsd->nd_mrep, *md = nfsd->nd_md;
@@ -3999,10 +3999,10 @@ nfsrv_fsinfo(nfsd, slp, procp, mrq)
}
/* XXX Try to make a guess on the max file size. */
- VFS_STATFS(vp->v_mount, &sb, procp);
+ VFS_STATFS(vp->v_mount, &sb, td);
maxfsize = (u_quad_t)0x80000000 * sb.f_bsize - 1;
- getret = VOP_GETATTR(vp, &at, cred, procp);
+ getret = VOP_GETATTR(vp, &at, cred, td);
vput(vp);
vp = NULL;
nfsm_reply(NFSX_V3POSTOPATTR + NFSX_V3FSINFO);
@@ -4041,10 +4041,10 @@ nfsmout:
* nfs pathconf service
*/
int
-nfsrv_pathconf(nfsd, slp, procp, mrq)
+nfsrv_pathconf(nfsd, slp, td, mrq)
struct nfsrv_descript *nfsd;
struct nfssvc_sock *slp;
- struct proc *procp;
+ struct thread *td;
struct mbuf **mrq;
{
struct mbuf *mrep = nfsd->nd_mrep, *md = nfsd->nd_md;
@@ -4086,7 +4086,7 @@ nfsrv_pathconf(nfsd, slp, procp, mrq)
error = VOP_PATHCONF(vp, _PC_CHOWN_RESTRICTED, &chownres);
if (!error)
error = VOP_PATHCONF(vp, _PC_NO_TRUNC, &notrunc);
- getret = VOP_GETATTR(vp, &at, cred, procp);
+ getret = VOP_GETATTR(vp, &at, cred, td);
vput(vp);
vp = NULL;
nfsm_reply(NFSX_V3POSTOPATTR + NFSX_V3PATHCONF);
@@ -4120,10 +4120,10 @@ nfsmout:
*/
/* ARGSUSED */
int
-nfsrv_null(nfsd, slp, procp, mrq)
+nfsrv_null(nfsd, slp, td, mrq)
struct nfsrv_descript *nfsd;
struct nfssvc_sock *slp;
- struct proc *procp;
+ struct thread *td;
struct mbuf **mrq;
{
struct mbuf *mrep = nfsd->nd_mrep;
@@ -4145,10 +4145,10 @@ nfsrv_null(nfsd, slp, procp, mrq)
*/
/* ARGSUSED */
int
-nfsrv_noop(nfsd, slp, procp, mrq)
+nfsrv_noop(nfsd, slp, td, mrq)
struct nfsrv_descript *nfsd;
struct nfssvc_sock *slp;
- struct proc *procp;
+ struct thread *td;
struct mbuf **mrq;
{
struct mbuf *mrep = nfsd->nd_mrep;
@@ -4184,12 +4184,12 @@ nfsrv_noop(nfsd, slp, procp, mrq)
* will return EPERM instead of EACCESS. EPERM is always an error.
*/
static int
-nfsrv_access(vp, flags, cred, rdonly, p, override)
+nfsrv_access(vp, flags, cred, rdonly, td, override)
register struct vnode *vp;
int flags;
register struct ucred *cred;
int rdonly;
- struct proc *p;
+ struct thread *td;
int override;
{
struct vattr vattr;
@@ -4220,10 +4220,10 @@ nfsrv_access(vp, flags, cred, rdonly, p, override)
if (vp->v_flag & VTEXT)
return (ETXTBSY);
}
- error = VOP_GETATTR(vp, &vattr, cred, p);
+ error = VOP_GETATTR(vp, &vattr, cred, td);
if (error)
return (error);
- error = VOP_ACCESS(vp, flags, cred, p);
+ error = VOP_ACCESS(vp, flags, cred, td);
/*
* Allow certain operations for the owner (reads and writes
* on files that are already open).
OpenPOWER on IntegriCloud