From 562ebdfbed6da83efa5110cabff6bbb6c685cfea Mon Sep 17 00:00:00 2001 From: peter Date: Fri, 28 Sep 2001 04:37:08 +0000 Subject: 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). --- sys/nfsserver/nfs_srvsock.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) (limited to 'sys/nfsserver/nfs_srvsock.c') 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; } -- cgit v1.1