summaryrefslogtreecommitdiffstats
path: root/sys/nfsserver/nfs_srvsock.c
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2001-09-28 04:37:08 +0000
committerpeter <peter@FreeBSD.org>2001-09-28 04:37:08 +0000
commit562ebdfbed6da83efa5110cabff6bbb6c685cfea (patch)
tree70885e3ccbc8ca40ca489f691745bc22fb96720d /sys/nfsserver/nfs_srvsock.c
parentd1e3264e13fc0aa3ac602b4919d9a89d613bc315 (diff)
downloadFreeBSD-src-562ebdfbed6da83efa5110cabff6bbb6c685cfea.zip
FreeBSD-src-562ebdfbed6da83efa5110cabff6bbb6c685cfea.tar.gz
Unwind some more macros. NFSMADV() was kinda silly since it was right
next to equivalent m_len adjustments. Move the nfsm_subs.h macros into groups depending on which phase they are used in, since that affects the error recovery requirements. Collect some of the common error checking into a single macro as preparation for unwinding some more. Have nfs_rephead return a value instead of secretly modifying args. Remove some unused function arguments that were being passed around. Clarify nfsm_reply()'s error handling (I hope).
Diffstat (limited to 'sys/nfsserver/nfs_srvsock.c')
-rw-r--r--sys/nfsserver/nfs_srvsock.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/sys/nfsserver/nfs_srvsock.c b/sys/nfsserver/nfs_srvsock.c
index cb2276d..1483396 100644
--- a/sys/nfsserver/nfs_srvsock.c
+++ b/sys/nfsserver/nfs_srvsock.c
@@ -136,9 +136,9 @@ int (*nfsrv3_procs[NFS_NPROCS])(struct nfsrv_descript *nd,
* Generate the rpc reply header
* siz arg. is used to decide if adding a cluster is worthwhile
*/
-void
-nfs_rephead(int siz, struct nfsrv_descript *nd, struct nfssvc_sock *slp,
- int err, struct mbuf **mrq, struct mbuf **mbp, caddr_t *bposp)
+struct mbuf *
+nfs_rephead(int siz, struct nfsrv_descript *nd, int err,
+ struct mbuf **mbp, caddr_t *bposp)
{
u_int32_t *tl;
struct mbuf *mreq;
@@ -148,7 +148,6 @@ nfs_rephead(int siz, struct nfsrv_descript *nd, struct nfssvc_sock *slp,
nd->nd_repstat = err;
if (err && (nd->nd_flag & ND_NFSV3) == 0) /* XXX recheck */
siz = 0;
-
MGETHDR(mreq, M_TRYWAIT, MT_DATA);
mb = mreq;
/*
@@ -179,7 +178,6 @@ nfs_rephead(int siz, struct nfsrv_descript *nd, struct nfssvc_sock *slp,
}
} else {
*tl++ = rpc_msgaccepted;
-
/*
* Send a RPCAUTH_NULL verifier - no Kerberos.
*/
@@ -211,15 +209,13 @@ nfs_rephead(int siz, struct nfsrv_descript *nd, struct nfssvc_sock *slp,
*tl = 0;
}
break;
- };
+ }
}
-
- if (mrq != NULL)
- *mrq = mreq;
*mbp = mb;
*bposp = bpos;
if (err != 0 && err != NFSERR_RETVOID)
nfsrvstats.srvrpc_errs++;
+ return mreq;
}
OpenPOWER on IntegriCloud