diff --git a/sys/fs/nfsserver/nfs_nfsdkrpc.c b/sys/fs/nfsserver/nfs_nfsdkrpc.c index 20b76d6152cd..d96a8c354276 100644 --- a/sys/fs/nfsserver/nfs_nfsdkrpc.c +++ b/sys/fs/nfsserver/nfs_nfsdkrpc.c @@ -39,6 +39,7 @@ #include "opt_kern_tls.h" #include +#include #include #include @@ -105,7 +106,6 @@ static int nfs_proc(struct nfsrv_descript *, u_int32_t, SVCXPRT *xprt, struct nfsrvcache **); extern u_long sb_max_adj; -extern int newnfs_numnfsd; extern time_t nfsdev_time; extern int nfsrv_writerpc[NFS_NPROCS]; extern volatile int nfsrv_devidcnt; @@ -554,6 +554,21 @@ nfssvc_loss(SVCXPRT *xprt) CURVNET_RESTORE(); } +/* + * Register xprt with the correct versions of NFS. + */ +void +nfsrv_svc_reg(SVCXPRT *xprt) +{ + + if (VNET(nfs_minvers) == NFS_VER2) + svc_reg(xprt, NFS_PROG, NFS_VER2, nfssvc_program, NULL); + if (VNET(nfs_minvers) <= NFS_VER3 && VNET(nfs_maxvers) >= NFS_VER3) + svc_reg(xprt, NFS_PROG, NFS_VER3, nfssvc_program, NULL); + if (VNET(nfs_maxvers) >= NFS_VER4) + svc_reg(xprt, NFS_PROG, NFS_VER4, nfssvc_program, NULL); +} + /* * Adds a socket to the list for servicing by nfsds. */ @@ -585,16 +600,7 @@ nfsrvd_addsock(struct file *fp) fp->f_ops = &badfileops; fp->f_data = NULL; xprt->xp_sockref = ++sockref; - if (VNET(nfs_minvers) == NFS_VER2) - svc_reg(xprt, NFS_PROG, NFS_VER2, nfssvc_program, - NULL); - if (VNET(nfs_minvers) <= NFS_VER3 && - VNET(nfs_maxvers) >= NFS_VER3) - svc_reg(xprt, NFS_PROG, NFS_VER3, nfssvc_program, - NULL); - if (VNET(nfs_maxvers) >= NFS_VER4) - svc_reg(xprt, NFS_PROG, NFS_VER4, nfssvc_program, - NULL); + nfsrv_svc_reg(xprt); if (so->so_type == SOCK_STREAM) svc_loss_reg(xprt, nfssvc_loss); SVC_RELEASE(xprt); diff --git a/sys/fs/nfsserver/nfs_nfsdport.c b/sys/fs/nfsserver/nfs_nfsdport.c index cfc0cea2195e..6d7f93c123f0 100644 --- a/sys/fs/nfsserver/nfs_nfsdport.c +++ b/sys/fs/nfsserver/nfs_nfsdport.c @@ -43,6 +43,7 @@ */ #include +#include #include #include #include @@ -59,7 +60,6 @@ FEATURE(nfsd, "NFSv4 server"); extern u_int32_t newnfs_true, newnfs_false, newnfs_xdrneg1; extern int nfsrv_useacl; -extern int newnfs_numnfsd; extern int nfsrv_sessionhashsize; extern struct nfslayouthash *nfslayouthash; extern int nfsrv_layouthashsize; diff --git a/sys/rpc/svc.h b/sys/rpc/svc.h index a7cbb639f48e..537dad0fdb65 100644 --- a/sys/rpc/svc.h +++ b/sys/rpc/svc.h @@ -350,8 +350,6 @@ typedef struct __rpc_svcpool { */ typedef int svc_rdma_listen_ftype(SVCPOOL *pool, int port); extern svc_rdma_listen_ftype *svc_rdma_listen; -extern int nfsrvd_rdma_port; -extern int newnfs_numnfsd; /* * Operations defined on an SVCXPRT handle