svn commit: r195202 - in head/sys: conf i386/i386 modules/nfsclient
modules/nfsserver nfs nfsclient nfsserver
Doug Rabson
dfr at FreeBSD.org
Tue Jun 30 19:03:28 UTC 2009
Author: dfr
Date: Tue Jun 30 19:03:27 2009
New Revision: 195202
URL: http://svn.freebsd.org/changeset/base/195202
Log:
Remove the old kernel RPC implementation and the NFS_LEGACYRPC option.
Approved by: re
Deleted:
head/sys/nfs/rpcv2.h
head/sys/nfsclient/nfs_socket.c
head/sys/nfsserver/nfs_srvcache.c
head/sys/nfsserver/nfs_srvsock.c
head/sys/nfsserver/nfs_syscalls.c
Modified:
head/sys/conf/files
head/sys/conf/options
head/sys/i386/i386/genassym.c
head/sys/modules/nfsclient/Makefile
head/sys/modules/nfsserver/Makefile
head/sys/nfs/nfs_common.c
head/sys/nfsclient/bootp_subr.c
head/sys/nfsclient/krpc_subr.c
head/sys/nfsclient/nfs.h
head/sys/nfsclient/nfs_bio.c
head/sys/nfsclient/nfs_diskless.c
head/sys/nfsclient/nfs_krpc.c
head/sys/nfsclient/nfs_lock.c
head/sys/nfsclient/nfs_nfsiod.c
head/sys/nfsclient/nfs_node.c
head/sys/nfsclient/nfs_subs.c
head/sys/nfsclient/nfs_vfsops.c
head/sys/nfsclient/nfs_vnops.c
head/sys/nfsclient/nfsm_subs.h
head/sys/nfsclient/nfsmount.h
head/sys/nfsserver/nfs.h
head/sys/nfsserver/nfs_fha.c
head/sys/nfsserver/nfs_serv.c
head/sys/nfsserver/nfs_srvkrpc.c
head/sys/nfsserver/nfs_srvsubs.c
head/sys/nfsserver/nfsrvcache.h
Modified: head/sys/conf/files
==============================================================================
--- head/sys/conf/files Tue Jun 30 18:52:36 2009 (r195201)
+++ head/sys/conf/files Tue Jun 30 19:03:27 2009 (r195202)
@@ -2490,7 +2490,6 @@ nfsclient/krpc_subr.c optional bootp nf
nfsclient/nfs_bio.c optional nfsclient
nfsclient/nfs_diskless.c optional nfsclient nfs_root
nfsclient/nfs_node.c optional nfsclient
-nfsclient/nfs_socket.c optional nfsclient
nfsclient/nfs_krpc.c optional nfsclient
nfsclient/nfs_subs.c optional nfsclient
nfsclient/nfs_nfsiod.c optional nfsclient
@@ -2500,10 +2499,7 @@ nfsclient/nfs_lock.c optional nfsclient
nfsserver/nfs_fha.c optional nfsserver
nfsserver/nfs_serv.c optional nfsserver
nfsserver/nfs_srvkrpc.c optional nfsserver
-nfsserver/nfs_srvsock.c optional nfsserver
-nfsserver/nfs_srvcache.c optional nfsserver
nfsserver/nfs_srvsubs.c optional nfsserver
-nfsserver/nfs_syscalls.c optional nfsserver
nfs/nfs_nfssvc.c optional nfsserver | nfscl | nfsd
nlm/nlm_advlock.c optional nfslockd nfsclient | nfsd nfsclient
nlm/nlm_prot_clnt.c optional nfslockd | nfsd
Modified: head/sys/conf/options
==============================================================================
--- head/sys/conf/options Tue Jun 30 18:52:36 2009 (r195201)
+++ head/sys/conf/options Tue Jun 30 19:03:27 2009 (r195202)
@@ -228,11 +228,6 @@ KGSSAPI_DEBUG opt_kgssapi.h
NFSCLIENT opt_nfs.h
NFSSERVER opt_nfs.h
-# Use this option to compile both NFS client and server using the
-# legacy RPC implementation instead of the newer KRPC system (which
-# supports modern features such as RPCSEC_GSS
-NFS_LEGACYRPC opt_nfs.h
-
# Use these options to compile the experimental nfs client and/or
# server that supports NFSv4 into a kernel.
# NFSCL - client
Modified: head/sys/i386/i386/genassym.c
==============================================================================
--- head/sys/i386/i386/genassym.c Tue Jun 30 18:52:36 2009 (r195201)
+++ head/sys/i386/i386/genassym.c Tue Jun 30 19:03:27 2009 (r195202)
@@ -67,7 +67,6 @@ __FBSDID("$FreeBSD$");
#include <net/if.h>
#include <netinet/in.h>
#include <nfs/nfsproto.h>
-#include <nfs/rpcv2.h>
#include <nfsclient/nfs.h>
#include <nfsclient/nfsdiskless.h>
#ifdef DEV_APIC
Modified: head/sys/modules/nfsclient/Makefile
==============================================================================
--- head/sys/modules/nfsclient/Makefile Tue Jun 30 18:52:36 2009 (r195201)
+++ head/sys/modules/nfsclient/Makefile Tue Jun 30 19:03:27 2009 (r195202)
@@ -4,7 +4,7 @@
KMOD= nfsclient
SRCS= vnode_if.h \
- nfs_bio.c nfs_lock.c nfs_node.c nfs_socket.c nfs_subs.c nfs_nfsiod.c \
+ nfs_bio.c nfs_lock.c nfs_node.c nfs_subs.c nfs_nfsiod.c \
nfs_vfsops.c nfs_vnops.c nfs_common.c nfs_krpc.c \
opt_inet.h opt_nfs.h opt_bootp.h opt_nfsroot.h
SRCS+= opt_inet6.h opt_kdtrace.h opt_kgssapi.h
Modified: head/sys/modules/nfsserver/Makefile
==============================================================================
--- head/sys/modules/nfsserver/Makefile Tue Jun 30 18:52:36 2009 (r195201)
+++ head/sys/modules/nfsserver/Makefile Tue Jun 30 19:03:27 2009 (r195202)
@@ -3,8 +3,8 @@
.PATH: ${.CURDIR}/../../nfsserver ${.CURDIR}/../../nfs
KMOD= nfsserver
SRCS= vnode_if.h \
- nfs_fha.c nfs_serv.c nfs_srvkrpc.c nfs_srvsock.c nfs_srvcache.c \
- nfs_srvsubs.c nfs_syscalls.c nfs_common.c \
+ nfs_fha.c nfs_serv.c nfs_srvkrpc.c nfs_srvsubs.c nfs_common.c \
+ opt_mac.h \
opt_kgssapi.h \
opt_nfs.h
SRCS+= opt_inet6.h
Modified: head/sys/nfs/nfs_common.c
==============================================================================
--- head/sys/nfs/nfs_common.c Tue Jun 30 18:52:36 2009 (r195201)
+++ head/sys/nfs/nfs_common.c Tue Jun 30 19:03:27 2009 (r195202)
@@ -61,7 +61,6 @@ __FBSDID("$FreeBSD$");
#include <vm/vm_object.h>
#include <vm/vm_extern.h>
-#include <nfs/rpcv2.h>
#include <nfs/nfsproto.h>
#include <nfsserver/nfs.h>
#include <nfs/xdr_subs.h>
Modified: head/sys/nfsclient/bootp_subr.c
==============================================================================
--- head/sys/nfsclient/bootp_subr.c Tue Jun 30 18:52:36 2009 (r195201)
+++ head/sys/nfsclient/bootp_subr.c Tue Jun 30 19:03:27 2009 (r195202)
@@ -68,7 +68,6 @@ __FBSDID("$FreeBSD$");
#include <net/if_dl.h>
#include <net/vnet.h>
-#include <nfs/rpcv2.h>
#include <nfs/nfsproto.h>
#include <nfsclient/nfs.h>
#include <nfsclient/nfsdiskless.h>
@@ -1776,6 +1775,13 @@ md_mount(struct sockaddr_in *mdsin, char
int authcount;
int authver;
+#define RPCPROG_MNT 100005
+#define RPCMNT_VER1 1
+#define RPCMNT_VER3 3
+#define RPCMNT_MOUNT 1
+#define AUTH_SYS 1 /* unix style (uid, gids) */
+#define AUTH_UNIX AUTH_SYS
+
/* XXX honor v2/v3 flags in args->flags? */
#ifdef BOOTP_NFSV3
/* First try NFS v3 */
@@ -1836,7 +1842,7 @@ md_mount(struct sockaddr_in *mdsin, char
while (authcount > 0) {
if (xdr_int_decode(&m, &authver) != 0)
goto bad;
- if (authver == RPCAUTH_UNIX)
+ if (authver == AUTH_UNIX)
authunixok = 1;
authcount--;
}
Modified: head/sys/nfsclient/krpc_subr.c
==============================================================================
--- head/sys/nfsclient/krpc_subr.c Tue Jun 30 18:52:36 2009 (r195201)
+++ head/sys/nfsclient/krpc_subr.c Tue Jun 30 19:03:27 2009 (r195202)
@@ -57,7 +57,9 @@ __FBSDID("$FreeBSD$");
#include <net/if.h>
#include <netinet/in.h>
-#include <nfs/rpcv2.h>
+#include <rpc/types.h>
+#include <rpc/auth.h>
+#include <rpc/rpc_msg.h>
#include <nfsclient/krpc.h>
#include <nfs/xdr_subs.h>
@@ -284,7 +286,7 @@ krpc_call(struct sockaddr_in *sa, u_int
call->rp_vers = txdr_unsigned(vers);
call->rp_proc = txdr_unsigned(func);
/* rpc_auth part (auth_unix as root) */
- call->rpc_auth.authtype = txdr_unsigned(RPCAUTH_UNIX);
+ call->rpc_auth.authtype = txdr_unsigned(AUTH_UNIX);
call->rpc_auth.authlen = txdr_unsigned(sizeof(struct auth_unix));
/* rpc_verf part (auth_null) */
call->rpc_verf.authtype = 0;
@@ -359,7 +361,7 @@ krpc_call(struct sockaddr_in *sa, u_int
reply = mtod(m, struct krpc_reply *);
/* Is it the right reply? */
- if (reply->rp_direction != txdr_unsigned(RPC_REPLY))
+ if (reply->rp_direction != txdr_unsigned(REPLY))
continue;
if (reply->rp_xid != txdr_unsigned(xid))
@@ -375,7 +377,7 @@ krpc_call(struct sockaddr_in *sa, u_int
/* Did the call succeed? */
if (reply->rp_status != 0) {
error = fxdr_unsigned(u_int32_t, reply->rp_status);
- if (error == RPC_PROGMISMATCH) {
+ if (error == PROG_MISMATCH) {
error = EBADRPC;
goto out;
}
Modified: head/sys/nfsclient/nfs.h
==============================================================================
--- head/sys/nfsclient/nfs.h Tue Jun 30 18:52:36 2009 (r195201)
+++ head/sys/nfsclient/nfs.h Tue Jun 30 19:03:27 2009 (r195202)
@@ -123,9 +123,6 @@ MALLOC_DECLARE(M_NFSDIRECTIO);
extern struct uma_zone *nfsmount_zone;
-#ifdef NFS_LEGACYRPC
-extern struct callout nfs_callout;
-#endif
extern struct nfsstats nfsstats;
extern struct mtx nfs_iod_mtx;
@@ -150,49 +147,6 @@ extern int nfsv3_procid[NFS_NPROCS];
(e) != ERESTART && (e) != EWOULDBLOCK && \
((s) & PR_CONNREQUIRED) == 0)
-#ifdef NFS_LEGACYRPC
-
-/*
- * Nfs outstanding request list element
- */
-struct nfsreq {
- TAILQ_ENTRY(nfsreq) r_chain;
- struct mbuf *r_mreq;
- struct mbuf *r_mrep;
- struct mbuf *r_md;
- caddr_t r_dpos;
- struct nfsmount *r_nmp;
- struct vnode *r_vp;
- u_int32_t r_xid;
- int r_flags; /* flags on request, see below */
- int r_retry; /* max retransmission count */
- int r_rexmit; /* current retrans count */
- int r_timer; /* tick counter on reply */
- u_int32_t r_procnum; /* NFS procedure number */
- int r_rtt; /* RTT for rpc */
- int r_lastmsg; /* last tprintf */
- struct thread *r_td; /* Proc that did I/O system call */
- struct mtx r_mtx; /* Protects nfsreq fields */
-};
-
-/*
- * Queue head for nfsreq's
- */
-extern TAILQ_HEAD(nfs_reqq, nfsreq) nfs_reqq;
-
-/* Flag values for r_flags */
-#define R_TIMING 0x01 /* timing request (in mntp) */
-#define R_SENT 0x02 /* request has been sent */
-#define R_SOFTTERM 0x04 /* soft mnt, too many retries */
-#define R_RESENDERR 0x08 /* Resend failed */
-#define R_SOCKERR 0x10 /* Fatal error on socket */
-#define R_TPRINTFMSG 0x20 /* Did a tprintf msg. */
-#define R_MUSTRESEND 0x40 /* Must resend request */
-#define R_GETONEREP 0x80 /* Probe for one reply only */
-#define R_PIN_REQ 0x100 /* Pin request down (rexmit in prog or other) */
-
-#else
-
/*
* This is only needed to keep things working while we support
* compiling for both RPC implementations.
@@ -200,8 +154,6 @@ extern TAILQ_HEAD(nfs_reqq, nfsreq) nfs_
struct nfsreq;
struct nfsmount;
-#endif
-
struct buf;
struct socket;
struct uio;
@@ -297,19 +249,6 @@ vfs_init_t nfs_init;
vfs_uninit_t nfs_uninit;
int nfs_mountroot(struct mount *mp);
-#ifdef NFS_LEGACYRPC
-#ifndef NFS4_USE_RPCCLNT
-int nfs_send(struct socket *, struct sockaddr *, struct mbuf *,
- struct nfsreq *);
-int nfs_connect_lock(struct nfsreq *);
-void nfs_connect_unlock(struct nfsreq *);
-void nfs_up(struct nfsreq *, struct nfsmount *, struct thread *,
- const char *, int);
-void nfs_down(struct nfsreq *, struct nfsmount *, struct thread *,
- const char *, int, int);
-#endif /* ! NFS4_USE_RPCCLNT */
-#endif
-
void nfs_purgecache(struct vnode *);
int nfs_vinvalbuf(struct vnode *, int, struct thread *, int);
int nfs_readrpc(struct vnode *, struct uio *, struct ucred *);
Modified: head/sys/nfsclient/nfs_bio.c
==============================================================================
--- head/sys/nfsclient/nfs_bio.c Tue Jun 30 18:52:36 2009 (r195201)
+++ head/sys/nfsclient/nfs_bio.c Tue Jun 30 19:03:27 2009 (r195202)
@@ -57,7 +57,6 @@ __FBSDID("$FreeBSD$");
#include <vm/vm_pager.h>
#include <vm/vnode_pager.h>
-#include <nfs/rpcv2.h>
#include <nfs/nfsproto.h>
#include <nfsclient/nfs.h>
#include <nfsclient/nfsmount.h>
Modified: head/sys/nfsclient/nfs_diskless.c
==============================================================================
--- head/sys/nfsclient/nfs_diskless.c Tue Jun 30 18:52:36 2009 (r195201)
+++ head/sys/nfsclient/nfs_diskless.c Tue Jun 30 19:03:27 2009 (r195202)
@@ -53,7 +53,6 @@ __FBSDID("$FreeBSD$");
#include <net/vnet.h>
#include <netinet/in.h>
-#include <nfs/rpcv2.h>
#include <nfs/nfsproto.h>
#include <nfsclient/nfs.h>
#include <nfsclient/nfsdiskless.h>
Modified: head/sys/nfsclient/nfs_krpc.c
==============================================================================
--- head/sys/nfsclient/nfs_krpc.c Tue Jun 30 18:52:36 2009 (r195201)
+++ head/sys/nfsclient/nfs_krpc.c Tue Jun 30 19:03:27 2009 (r195202)
@@ -61,7 +61,6 @@ __FBSDID("$FreeBSD$");
#include <rpc/rpc.h>
-#include <nfs/rpcv2.h>
#include <nfs/nfsproto.h>
#include <nfsclient/nfs.h>
#include <nfs/xdr_subs.h>
@@ -69,8 +68,6 @@ __FBSDID("$FreeBSD$");
#include <nfsclient/nfsmount.h>
#include <nfsclient/nfsnode.h>
-#ifndef NFS_LEGACYRPC
-
#ifdef KDTRACE_HOOKS
#include <sys/dtrace_bsd.h>
@@ -899,5 +896,3 @@ nfs_up(struct nfsmount *nmp, struct thre
} else
mtx_unlock(&nmp->nm_mtx);
}
-
-#endif /* !NFS_LEGACYRPC */
Modified: head/sys/nfsclient/nfs_lock.c
==============================================================================
--- head/sys/nfsclient/nfs_lock.c Tue Jun 30 18:52:36 2009 (r195201)
+++ head/sys/nfsclient/nfs_lock.c Tue Jun 30 19:03:27 2009 (r195202)
@@ -53,7 +53,6 @@ __FBSDID("$FreeBSD$");
#include <net/if.h>
-#include <nfs/rpcv2.h>
#include <nfs/nfsproto.h>
#include <nfsclient/nfs.h>
#include <nfsclient/nfsmount.h>
Modified: head/sys/nfsclient/nfs_nfsiod.c
==============================================================================
--- head/sys/nfsclient/nfs_nfsiod.c Tue Jun 30 18:52:36 2009 (r195201)
+++ head/sys/nfsclient/nfs_nfsiod.c Tue Jun 30 19:03:27 2009 (r195202)
@@ -64,7 +64,6 @@ __FBSDID("$FreeBSD$");
#include <netinet/tcp.h>
#include <nfs/xdr_subs.h>
-#include <nfs/rpcv2.h>
#include <nfs/nfsproto.h>
#include <nfsclient/nfs.h>
#include <nfsclient/nfsm_subs.h>
Modified: head/sys/nfsclient/nfs_node.c
==============================================================================
--- head/sys/nfsclient/nfs_node.c Tue Jun 30 18:52:36 2009 (r195201)
+++ head/sys/nfsclient/nfs_node.c Tue Jun 30 19:03:27 2009 (r195202)
@@ -50,7 +50,6 @@ __FBSDID("$FreeBSD$");
#include <vm/uma.h>
-#include <nfs/rpcv2.h>
#include <nfs/nfsproto.h>
#include <nfsclient/nfs.h>
#include <nfsclient/nfsnode.h>
Modified: head/sys/nfsclient/nfs_subs.c
==============================================================================
--- head/sys/nfsclient/nfs_subs.c Tue Jun 30 18:52:36 2009 (r195201)
+++ head/sys/nfsclient/nfs_subs.c Tue Jun 30 19:03:27 2009 (r195202)
@@ -65,7 +65,6 @@ __FBSDID("$FreeBSD$");
#include <vm/vm_extern.h>
#include <vm/uma.h>
-#include <nfs/rpcv2.h>
#include <nfs/nfsproto.h>
#include <nfsclient/nfs.h>
#include <nfsclient/nfsnode.h>
@@ -105,8 +104,6 @@ uint32_t nfsclient_attrcache_load_done_i
* This is kinda hokey, but may save a little time doing byte swaps
*/
u_int32_t nfs_xdrneg1;
-u_int32_t rpc_call, rpc_vers, rpc_reply, rpc_msgdenied, rpc_autherr,
- rpc_mismatch, rpc_auth_unix, rpc_msgaccepted;
u_int32_t nfs_true, nfs_false;
/* And other global data */
@@ -118,10 +115,6 @@ static enum vtype nv2tov_type[8]= {
int nfs_ticks;
int nfs_pbuf_freecnt = -1; /* start out unlimited */
-#ifdef NFS_LEGACYRPC
-struct nfs_reqq nfs_reqq;
-struct mtx nfs_reqq_mtx;
-#endif
struct nfs_bufq nfs_bufq;
static struct mtx nfs_xid_mtx;
@@ -194,87 +187,6 @@ nfsm_reqhead(struct vnode *vp, u_long pr
}
/*
- * Build the RPC header and fill in the authorization info.
- * The authorization string argument is only used when the credentials
- * come from outside of the kernel.
- * Returns the head of the mbuf list.
- */
-struct mbuf *
-nfsm_rpchead(struct ucred *cr, int nmflag, int procid, int auth_type,
- int auth_len, struct mbuf *mrest, int mrest_len, struct mbuf **mbp,
- u_int32_t **xidpp)
-{
- struct mbuf *mb;
- u_int32_t *tl;
- caddr_t bpos;
- int i;
- struct mbuf *mreq;
- int grpsiz, authsiz;
-
- authsiz = nfsm_rndup(auth_len);
- MGETHDR(mb, M_WAIT, MT_DATA);
- if ((authsiz + 10 * NFSX_UNSIGNED) >= MINCLSIZE) {
- MCLGET(mb, M_WAIT);
- } else if ((authsiz + 10 * NFSX_UNSIGNED) < MHLEN) {
- MH_ALIGN(mb, authsiz + 10 * NFSX_UNSIGNED);
- } else {
- MH_ALIGN(mb, 8 * NFSX_UNSIGNED);
- }
- mb->m_len = 0;
- mreq = mb;
- bpos = mtod(mb, caddr_t);
-
- /*
- * First the RPC header.
- */
- tl = nfsm_build(u_int32_t *, 8 * NFSX_UNSIGNED);
-
- *xidpp = tl;
- *tl++ = txdr_unsigned(nfs_xid_gen());
- *tl++ = rpc_call;
- *tl++ = rpc_vers;
- *tl++ = txdr_unsigned(NFS_PROG);
- if (nmflag & NFSMNT_NFSV3) {
- *tl++ = txdr_unsigned(NFS_VER3);
- *tl++ = txdr_unsigned(procid);
- } else {
- *tl++ = txdr_unsigned(NFS_VER2);
- *tl++ = txdr_unsigned(nfsv2_procid[procid]);
- }
-
- /*
- * And then the authorization cred.
- */
- *tl++ = txdr_unsigned(auth_type);
- *tl = txdr_unsigned(authsiz);
- switch (auth_type) {
- case RPCAUTH_UNIX:
- tl = nfsm_build(u_int32_t *, auth_len);
- *tl++ = 0; /* stamp ?? */
- *tl++ = 0; /* NULL hostname */
- *tl++ = txdr_unsigned(cr->cr_uid);
- *tl++ = txdr_unsigned(cr->cr_groups[0]);
- grpsiz = (auth_len >> 2) - 5;
- *tl++ = txdr_unsigned(grpsiz);
- for (i = 1; i <= grpsiz; i++)
- *tl++ = txdr_unsigned(cr->cr_groups[i]);
- break;
- }
-
- /*
- * And the verifier...
- */
- tl = nfsm_build(u_int32_t *, 2 * NFSX_UNSIGNED);
- *tl++ = txdr_unsigned(RPCAUTH_NULL);
- *tl = 0;
- mb->m_next = mrest;
- mreq->m_pkthdr.len = authsiz + 10 * NFSX_UNSIGNED + mrest_len;
- mreq->m_pkthdr.rcvif = NULL;
- *mbp = mb;
- return (mreq);
-}
-
-/*
* copies a uio scatter/gather list to an mbuf chain.
* NOTE: can ony handle iovcnt == 1
*/
@@ -427,14 +339,6 @@ nfs_init(struct vfsconf *vfsp)
nfsmount_zone = uma_zcreate("NFSMOUNT", sizeof(struct nfsmount),
NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
- rpc_vers = txdr_unsigned(RPC_VER2);
- rpc_call = txdr_unsigned(RPC_CALL);
- rpc_reply = txdr_unsigned(RPC_REPLY);
- rpc_msgdenied = txdr_unsigned(RPC_MSGDENIED);
- rpc_msgaccepted = txdr_unsigned(RPC_MSGACCEPTED);
- rpc_mismatch = txdr_unsigned(RPC_MISMATCH);
- rpc_autherr = txdr_unsigned(RPC_AUTHERR);
- rpc_auth_unix = txdr_unsigned(RPCAUTH_UNIX);
nfs_true = txdr_unsigned(TRUE);
nfs_false = txdr_unsigned(FALSE);
nfs_xdrneg1 = txdr_unsigned(-1);
@@ -451,11 +355,6 @@ nfs_init(struct vfsconf *vfsp)
/*
* Initialize reply list and start timer
*/
-#ifdef NFS_LEGACYRPC
- TAILQ_INIT(&nfs_reqq);
- mtx_init(&nfs_reqq_mtx, "NFS reqq lock", NULL, MTX_DEF);
- callout_init(&nfs_callout, CALLOUT_MPSAFE);
-#endif
mtx_init(&nfs_iod_mtx, "NFS iod lock", NULL, MTX_DEF);
mtx_init(&nfs_xid_mtx, "NFS xid lock", NULL, MTX_DEF);
@@ -469,13 +368,6 @@ nfs_uninit(struct vfsconf *vfsp)
{
int i;
-#ifdef NFS_LEGACYRPC
- callout_stop(&nfs_callout);
-
- KASSERT(TAILQ_EMPTY(&nfs_reqq),
- ("nfs_uninit: request queue not empty"));
-#endif
-
/*
* Tell all nfsiod processes to exit. Clear nfs_iodmax, and wakeup
* any sleeping nfsiods so they check nfs_iodmax and exit.
Modified: head/sys/nfsclient/nfs_vfsops.c
==============================================================================
--- head/sys/nfsclient/nfs_vfsops.c Tue Jun 30 18:52:36 2009 (r195201)
+++ head/sys/nfsclient/nfs_vfsops.c Tue Jun 30 19:03:27 2009 (r195202)
@@ -68,7 +68,6 @@ __FBSDID("$FreeBSD$");
#include <rpc/rpc.h>
-#include <nfs/rpcv2.h>
#include <nfs/nfsproto.h>
#include <nfsclient/nfs.h>
#include <nfsclient/nfsnode.h>
@@ -142,9 +141,7 @@ VFS_SET(nfs_vfsops, nfs, VFCF_NETWORK);
/* So that loader and kldload(2) can find us, wherever we are.. */
MODULE_VERSION(nfs, 1);
-#ifndef NFS_LEGACYRPC
MODULE_DEPEND(nfs, krpc, 1, 1, 1);
-#endif
#ifdef KGSSAPI
MODULE_DEPEND(nfs, kgssapi, 1, 1, 1);
#endif
@@ -551,7 +548,6 @@ nfs_mountdiskless(char *path,
return (0);
}
-#ifndef NFS_LEGACYRPC
static int
nfs_sec_name_to_num(char *sec)
{
@@ -569,7 +565,6 @@ nfs_sec_name_to_num(char *sec)
*/
return (AUTH_SYS);
}
-#endif
static void
nfs_decode_args(struct mount *mp, struct nfsmount *nmp, struct nfs_args *argp,
@@ -579,10 +574,8 @@ nfs_decode_args(struct mount *mp, struct
int adjsock;
int maxio;
char *p;
-#ifndef NFS_LEGACYRPC
char *secname;
char *principal;
-#endif
s = splnet();
@@ -734,13 +727,7 @@ nfs_decode_args(struct mount *mp, struct
nmp->nm_sotype = argp->sotype;
nmp->nm_soproto = argp->proto;
- if (
-#ifdef NFS_LEGACYRPC
- nmp->nm_so
-#else
- nmp->nm_client
-#endif
- && adjsock) {
+ if (nmp->nm_client && adjsock) {
nfs_safedisconnect(nmp);
if (nmp->nm_sotype == SOCK_DGRAM)
while (nfs_connect(nmp, NULL)) {
@@ -757,7 +744,6 @@ nfs_decode_args(struct mount *mp, struct
*p = '\0';
}
-#ifndef NFS_LEGACYRPC
if (vfs_getopt(mp->mnt_optnew, "sec",
(void **) &secname, NULL) == 0) {
nmp->nm_secflavor = nfs_sec_name_to_num(secname);
@@ -773,7 +759,6 @@ nfs_decode_args(struct mount *mp, struct
snprintf(nmp->nm_principal, sizeof(nmp->nm_principal),
"nfs@%s", nmp->nm_hostname);
}
-#endif
}
static const char *nfs_opts[] = { "from", "nfs_args",
Modified: head/sys/nfsclient/nfs_vnops.c
==============================================================================
--- head/sys/nfsclient/nfs_vnops.c Tue Jun 30 18:52:36 2009 (r195201)
+++ head/sys/nfsclient/nfs_vnops.c Tue Jun 30 19:03:27 2009 (r195202)
@@ -70,7 +70,6 @@ __FBSDID("$FreeBSD$");
#include <fs/fifofs/fifo.h>
-#include <nfs/rpcv2.h>
#include <nfs/nfsproto.h>
#include <nfsclient/nfs.h>
#include <nfsclient/nfsnode.h>
@@ -3193,7 +3192,7 @@ loop:
&np->n_mtx, slpflag | (PRIBIO + 1),
"nfsfsync", 0);
if (error) {
- if (nfs_sigintr(nmp, (struct nfsreq *)0, td)) {
+ if (nfs_sigintr(nmp, NULL, td)) {
mtx_unlock(&np->n_mtx);
error = EINTR;
goto done;
Modified: head/sys/nfsclient/nfsm_subs.h
==============================================================================
--- head/sys/nfsclient/nfsm_subs.h Tue Jun 30 18:52:36 2009 (r195201)
+++ head/sys/nfsclient/nfsm_subs.h Tue Jun 30 19:03:27 2009 (r195202)
@@ -54,10 +54,6 @@ struct vnode;
*/
u_int32_t nfs_xid_gen(void);
struct mbuf *nfsm_reqhead(struct vnode *vp, u_long procid, int hsiz);
-struct mbuf *nfsm_rpchead(struct ucred *cr, int nmflag, int procid,
- int auth_type, int auth_len,
- struct mbuf *mrest, int mrest_len,
- struct mbuf **mbp, u_int32_t **xidpp);
#define M_HASCL(m) ((m)->m_flags & M_EXT)
#define NFSMINOFF(m) \
Modified: head/sys/nfsclient/nfsmount.h
==============================================================================
--- head/sys/nfsclient/nfsmount.h Tue Jun 30 18:52:36 2009 (r195201)
+++ head/sys/nfsclient/nfsmount.h Tue Jun 30 19:03:27 2009 (r195202)
@@ -36,36 +36,11 @@
#ifndef _NFSCLIENT_NFSMOUNT_H_
#define _NFSCLIENT_NFSMOUNT_H_
-#ifndef NFS_LEGACYRPC
-
-#undef RPC_SUCCESS
-#undef RPC_PROGUNAVAIL
-#undef RPC_PROCUNAVAIL
-#undef AUTH_OK
-#undef AUTH_BADCRED
-#undef AUTH_BADVERF
-#undef AUTH_TOOWEAK
-
#include <rpc/types.h>
#include <rpc/auth.h>
#include <rpc/clnt.h>
#include <rpc/rpcsec_gss.h>
-#endif
-
-#ifdef NFS_LEGACYRPC
-
-struct nfs_tcp_mountstate {
- int rpcresid;
-#define NFS_TCP_EXPECT_RPCMARKER 0x0001 /* Expect to see a RPC/TCP marker next */
-#define NFS_TCP_FORCE_RECONNECT 0x0002 /* Force a TCP reconnect */
-#define NFS_TCP_WAIT_WRITE_DRAIN 0x0004 /* Waiting for socket writers to finish */
- int flags;
- int sock_send_inprog;
-};
-
-#endif
-
/*
* Mount structure.
* One allocated on every NFS mount.
@@ -79,22 +54,12 @@ struct nfsmount {
int nm_numgrps; /* Max. size of groupslist */
u_char nm_fh[NFSX_V4FH]; /* File handle of root dir */
int nm_fhsize; /* Size of root file handle */
-#ifdef NFS_LEGACYRPC
- struct socket *nm_so; /* Rpc socket */
-#endif
int nm_sotype; /* Type of socket */
int nm_soproto; /* and protocol */
int nm_soflags; /* pr_flags for socket protocol */
struct sockaddr *nm_nam; /* Addr of server */
int nm_timeo; /* Init timer for NFSMNT_DUMBTIMR */
int nm_retry; /* Max retries */
-#ifdef NFS_LEGACYRPC
- int nm_srtt[NFS_MAX_TIMER], /* RTT Timers for rpcs */
- nm_sdrtt[NFS_MAX_TIMER];
- int nm_sent; /* Request send count */
- int nm_cwnd; /* Request send window */
- int nm_timeouts; /* Request timeouts */
-#endif
int nm_deadthresh; /* Threshold of timeouts-->dead server*/
int nm_rsize; /* Max size of read rpc */
int nm_wsize; /* Max size of write rpc */
@@ -114,17 +79,12 @@ struct nfsmount {
struct nfs_rpcops *nm_rpcops;
int nm_tprintf_initial_delay; /* initial delay */
int nm_tprintf_delay; /* interval for messages */
-#ifdef NFS_LEGACYRPC
- struct nfs_tcp_mountstate nm_nfstcpstate;
-#endif
char nm_hostname[MNAMELEN]; /* server's name */
-#ifndef NFS_LEGACYRPC
int nm_secflavor; /* auth flavor to use for rpc */
struct __rpc_client *nm_client;
struct rpc_timers nm_timers[NFS_MAX_TIMER]; /* RTT Timers for rpcs */
char nm_principal[MNAMELEN]; /* GSS-API principal of server */
gss_OID nm_mech_oid; /* OID of selected GSS-API mechanism */
-#endif
/* NFSv4 */
uint64_t nm_clientid;
Modified: head/sys/nfsserver/nfs.h
==============================================================================
--- head/sys/nfsserver/nfs.h Tue Jun 30 18:52:36 2009 (r195201)
+++ head/sys/nfsserver/nfs.h Tue Jun 30 19:03:27 2009 (r195202)
@@ -176,82 +176,10 @@ extern int32_t (*nfsrv3_procs[NFS_NPROCS
#define NWDELAYHASH(sock, f) \
(&(sock)->ns_wdelayhashtbl[(*((u_int32_t *)(f))) % NFS_WDELAYHASHSIZ])
-#ifdef NFS_LEGACYRPC
-/*
- * Network address hash list element
- */
-union nethostaddr {
- u_int32_t had_inetaddr;
- struct sockaddr *had_nam;
-};
-
-struct nfsrv_rec {
- STAILQ_ENTRY(nfsrv_rec) nr_link;
- struct sockaddr *nr_address;
- struct mbuf *nr_packet;
-};
-
-struct nfssvc_sock {
- TAILQ_ENTRY(nfssvc_sock) ns_chain; /* List of all nfssvc_sock's */
- struct file *ns_fp;
- struct socket *ns_so;
- struct sockaddr *ns_nam;
- struct mbuf *ns_raw;
- struct mbuf *ns_rawend;
- STAILQ_HEAD(, nfsrv_rec) ns_rec;
- struct mbuf *ns_frag;
- int ns_flag;
- int ns_solock;
- int ns_cc;
- int ns_reclen;
- u_int32_t ns_sref;
- LIST_HEAD(, nfsrv_descript) ns_tq; /* Write gather lists */
- LIST_HEAD(nfsrvw_delayhash, nfsrv_descript) ns_wdelayhashtbl[NFS_WDELAYHASHSIZ];
-};
-
-/* Bits for "ns_flag" */
-#define SLP_VALID 0x01 /* Socket valid for use (XXX) */
-#define SLP_DOREC 0x02 /* Socket ready for processing */
-#define SLP_NEEDQ 0x04 /* Socket has request queued */
-#define SLP_DISCONN 0x08 /* Error received from stream socket */
-#define SLP_GETSTREAM 0x10 /* nfsrv_getstream in prog on sock */
-#define SLP_LASTFRAG 0x20 /* Socket received end-of-record */
-#define SLP_ALLFLAGS 0xff
-
-extern TAILQ_HEAD(nfssvc_sockhead, nfssvc_sock) nfssvc_sockhead;
-extern int nfssvc_sockhead_flag;
-#define SLP_INIT 0x01
-#define SLP_WANTINIT 0x02
-
-/*
- * One of these structures is allocated for each nfsd.
- */
-struct nfsd {
- TAILQ_ENTRY(nfsd) nfsd_chain; /* List of all nfsd's */
- int nfsd_flag; /* NFSD_ flags */
- struct nfssvc_sock *nfsd_slp; /* Current socket */
- int nfsd_authlen; /* Authenticator len */
- u_char nfsd_authstr[RPCAUTH_MAXSIZ]; /* Authenticator data */
- int nfsd_verflen; /* and the Verifier */
- u_char nfsd_verfstr[RPCVERF_MAXSIZ];
- struct nfsrv_descript *nfsd_nd; /* Associated nfsrv_descript */
-};
-
-/* Bits for "nfsd_flag" */
-#define NFSD_WAITING 0x01
-#define NFSD_REQINPROG 0x02
-
/*
* This structure is used by the server for describing each request.
- * Some fields are used only when write request gathering is performed.
*/
struct nfsrv_descript {
- u_quad_t nd_time; /* Write deadline (usec) */
- off_t nd_off; /* Start byte offset */
- off_t nd_eoff; /* and end byte offset */
- LIST_ENTRY(nfsrv_descript) nd_hash; /* Hash list */
- LIST_ENTRY(nfsrv_descript) nd_tq; /* and timer list */
- LIST_HEAD(, nfsrv_descript) nd_coalesce;/* coalesced writes */
struct mbuf *nd_mrep; /* Request mbuf list */
struct mbuf *nd_md; /* Current dissect mbuf */
struct mbuf *nd_mreq; /* Reply mbuf list */
@@ -261,56 +189,15 @@ struct nfsrv_descript {
u_int32_t nd_procnum; /* RPC # */
int nd_stable; /* storage type */
int nd_flag; /* nd_flag */
- int nd_len; /* Length of this write */
int nd_repstat; /* Reply status */
- u_int32_t nd_retxid; /* Reply xid */
- struct timeval nd_starttime; /* Time RPC initiated */
fhandle_t nd_fh; /* File handle */
struct ucred *nd_cr; /* Credentials */
int nd_credflavor; /* Security flavor */
};
-#else
-
-/*
- * This structure is used by the server for describing each request.
- */
-struct nfsrv_descript {
- struct mbuf *nd_mrep; /* Request mbuf list */
- struct mbuf *nd_md; /* Current dissect mbuf */
- struct mbuf *nd_mreq; /* Reply mbuf list */
- struct sockaddr *nd_nam; /* and socket addr */
- struct sockaddr *nd_nam2; /* return socket addr */
- caddr_t nd_dpos; /* Current dissect pos */
- u_int32_t nd_procnum; /* RPC # */
- int nd_stable; /* storage type */
- int nd_flag; /* nd_flag */
- int nd_repstat; /* Reply status */
- fhandle_t nd_fh; /* File handle */
- struct ucred *nd_cr; /* Credentials */
- int nd_credflavor; /* Security flavor */
-};
-
-#endif
-
/* Bits for "nd_flag" */
#define ND_NFSV3 0x08
-#ifdef NFS_LEGACYRPC
-
-extern TAILQ_HEAD(nfsd_head, nfsd) nfsd_head;
-extern int nfsd_head_flag;
-#define NFSD_CHECKSLP 0x01
-
-/*
- * These macros compare nfsrv_descript structures.
- */
-#define NFSW_CONTIG(o, n) \
- ((o)->nd_eoff >= (n)->nd_off && \
- !bcmp((caddr_t)&(o)->nd_fh, (caddr_t)&(n)->nd_fh, NFSX_V3FH))
-
-#endif
-
/*
* Defines for WebNFS
*/
@@ -353,26 +240,6 @@ extern int nfs_debug;
#endif
-#ifdef NFS_LEGACYRPC
-int netaddr_match(int, union nethostaddr *, struct sockaddr *);
-int nfs_getreq(struct nfsrv_descript *, struct nfsd *, int);
-int nfsrv_send(struct socket *, struct sockaddr *, struct mbuf *);
-int nfsrv_dorec(struct nfssvc_sock *, struct nfsd *,
- struct nfsrv_descript **);
-int nfs_slplock(struct nfssvc_sock *, int);
-void nfs_slpunlock(struct nfssvc_sock *);
-void nfsrv_initcache(void);
-void nfsrv_destroycache(void);
-void nfsrv_timer(void *);
-int nfsrv_getcache(struct nfsrv_descript *, struct mbuf **);
-void nfsrv_updatecache(struct nfsrv_descript *, int, struct mbuf *);
-void nfsrv_cleancache(void);
-int nfsrv_rcv(struct socket *so, void *arg, int waitflag);
-void nfsrv_slpderef(struct nfssvc_sock *slp);
-void nfsrv_wakenfsd(struct nfssvc_sock *slp);
-int nfsrv_writegather(struct nfsrv_descript **, struct nfssvc_sock *,
- struct mbuf **);
-#endif
struct mbuf *nfs_rephead(int, struct nfsrv_descript *, int, struct mbuf **,
caddr_t *);
void nfsm_srvfattr(struct nfsrv_descript *, struct vattr *,
Modified: head/sys/nfsserver/nfs_fha.c
==============================================================================
--- head/sys/nfsserver/nfs_fha.c Tue Jun 30 18:52:36 2009 (r195201)
+++ head/sys/nfsserver/nfs_fha.c Tue Jun 30 19:03:27 2009 (r195202)
@@ -39,14 +39,11 @@ __FBSDID("$FreeBSD$");
#include <rpc/rpc.h>
#include <nfs/xdr_subs.h>
-#include <nfs/rpcv2.h>
#include <nfs/nfsproto.h>
#include <nfsserver/nfs.h>
#include <nfsserver/nfsm_subs.h>
#include <nfsserver/nfs_fha.h>
-#ifndef NFS_LEGACYRPC
-
static MALLOC_DEFINE(M_NFS_FHA, "NFS FHA", "NFS FHA");
/* Sysctl defaults. */
@@ -598,5 +595,3 @@ fhe_stats_sysctl(SYSCTL_HANDLER_ARGS)
sbuf_delete(&sb);
return (error);
}
-
-#endif /* !NFS_LEGACYRPC */
Modified: head/sys/nfsserver/nfs_serv.c
==============================================================================
--- head/sys/nfsserver/nfs_serv.c Tue Jun 30 18:52:36 2009 (r195201)
+++ head/sys/nfsserver/nfs_serv.c Tue Jun 30 19:03:27 2009 (r195202)
@@ -93,7 +93,6 @@ __FBSDID("$FreeBSD$");
#include <vm/vm_object.h>
#include <nfs/nfsproto.h>
-#include <nfs/rpcv2.h>
#include <nfsserver/nfs.h>
#include <nfs/xdr_subs.h>
#include <nfsserver/nfsm_subs.h>
@@ -142,10 +141,6 @@ SYSCTL_STRUCT(_vfs_nfsrv, NFS_NFSRVSTATS
static int nfsrv_access(struct vnode *, accmode_t, struct ucred *,
int, int);
-#ifdef NFS_LEGACYRPC
-static void nfsrvw_coalesce(struct nfsrv_descript *,
- struct nfsrv_descript *);
-#endif
/*
* Clear nameidata fields that are tested in nsfmout cleanup code prior
@@ -1229,425 +1224,6 @@ nfsmout:
return(error);
}
-#ifdef NFS_LEGACYRPC
-
-/*
- * XXX dfr - write gathering isn't supported by the new RPC code since
- * its really only useful for NFSv2. If there is a real need, we could
- * attempt to fit it into the filehandle affinity system, e.g. by
- * looking to see if there are queued write requests that overlap this
- * one.
- */
-
-/*
- * For the purposes of write gathering, we must decide if the credential
- * associated with two pending requests have equivilent privileges. Since
- * NFS only uses a subset of the BSD ucred -- the effective uid and group
- * IDs -- we have a compare routine that checks only the relevant fields.
- */
-static int
-nfsrv_samecred(struct ucred *cr1, struct ucred *cr2)
-{
- int i;
-
- if (cr1->cr_uid != cr2->cr_uid)
- return (0);
- if (cr1->cr_ngroups != cr2->cr_ngroups)
- return (0);
- for (i = 0; i < cr1->cr_ngroups; i++) {
- if (cr1->cr_groups[i] != cr2->cr_groups[i])
- return (0);
- }
- return (1);
-}
-
-/*
- * NFS write service with write gathering support. Called when
- * nfsrvw_procrastinate > 0.
- * See: Chet Juszczak, "Improving the Write Performance of an NFS Server",
- * in Proc. of the Winter 1994 Usenix Conference, pg. 247-259, San Franscisco,
- * Jan. 1994.
- */
-int
-nfsrv_writegather(struct nfsrv_descript **ndp, struct nfssvc_sock *slp,
- struct mbuf **mrq)
-{
- struct iovec *ivp;
- struct mbuf *mp;
- struct nfsrv_descript *wp, *nfsd, *owp, *swp;
- struct nfs_fattr *fp;
- int i;
- struct iovec *iov;
- struct nfsrvw_delayhash *wpp;
- struct ucred *cred;
- struct vattr va, forat;
- u_int32_t *tl;
- caddr_t bpos, dpos;
- int error = 0, rdonly, len, forat_ret = 1;
- int ioflags, aftat_ret = 1, s, adjust, v3, zeroing;
- struct mbuf *mb, *mreq, *mrep, *md;
- struct vnode *vp = NULL;
- struct uio io, *uiop = &io;
- u_quad_t cur_usec;
- struct mount *mntp = NULL;
- int mvfslocked;
- int vfslocked;
-
- nfsdbprintf(("%s %d\n", __FILE__, __LINE__));
-#ifndef nolint
- i = 0;
- len = 0;
-#endif
- vfslocked = 0;
- *mrq = NULL;
- if (*ndp) {
- nfsd = *ndp;
- *ndp = NULL;
- mrep = nfsd->nd_mrep;
- md = nfsd->nd_md;
- dpos = nfsd->nd_dpos;
- cred = nfsd->nd_cr;
- v3 = (nfsd->nd_flag & ND_NFSV3);
- LIST_INIT(&nfsd->nd_coalesce);
- nfsd->nd_mreq = NULL;
- nfsd->nd_stable = NFSV3WRITE_FILESYNC;
- cur_usec = nfs_curusec();
- nfsd->nd_time = cur_usec +
- (v3 ? nfsrvw_procrastinate_v3 : nfsrvw_procrastinate);
-
- /*
- * Now, get the write header..
- */
- nfsm_srvmtofh(&nfsd->nd_fh);
- if (v3) {
- tl = nfsm_dissect_nonblock(u_int32_t *, 5 * NFSX_UNSIGNED);
- nfsd->nd_off = fxdr_hyper(tl);
- tl += 3;
- nfsd->nd_stable = fxdr_unsigned(int, *tl++);
- } else {
- tl = nfsm_dissect_nonblock(u_int32_t *, 4 * NFSX_UNSIGNED);
- nfsd->nd_off = (off_t)fxdr_unsigned(u_int32_t, *++tl);
- tl += 2;
- if (nfs_async)
- nfsd->nd_stable = NFSV3WRITE_UNSTABLE;
- }
- len = fxdr_unsigned(int32_t, *tl);
- nfsd->nd_len = len;
- nfsd->nd_eoff = nfsd->nd_off + len;
-
- /*
- * Trim the header out of the mbuf list and trim off any trailing
- * junk so that the mbuf list has only the write data.
- */
- zeroing = 1;
- i = 0;
- mp = mrep;
- while (mp) {
- if (mp == md) {
- zeroing = 0;
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-all
mailing list