summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarius <marius@FreeBSD.org>2010-02-16 20:00:21 +0000
committermarius <marius@FreeBSD.org>2010-02-16 20:00:21 +0000
commite51e443f9c10ecdd3c53d6065cdc8b426c492b07 (patch)
tree798a6052d509cf8b960f4f98ceac2a9fba8e21cd
parentceb3f1544b3b73558308c9fdef1209622a768696 (diff)
downloadFreeBSD-src-e51e443f9c10ecdd3c53d6065cdc8b426c492b07.zip
FreeBSD-src-e51e443f9c10ecdd3c53d6065cdc8b426c492b07.tar.gz
Factor out the code shared between NFS client and server into its own
module. With r203732 it became apparent that creating the sysctl nodes twice causes at least a warning, however the whole code shouldn't be present twice in the first place. Discussed with: rmacklem
-rw-r--r--sys/modules/nfs_common/Makefile8
-rw-r--r--sys/modules/nfsclient/Makefile4
-rw-r--r--sys/modules/nfsserver/Makefile4
-rw-r--r--sys/nfs/nfs_common.c20
-rw-r--r--sys/nfsclient/nfs_vfsops.c1
-rw-r--r--sys/nfsserver/nfs_srvsubs.c1
6 files changed, 29 insertions, 9 deletions
diff --git a/sys/modules/nfs_common/Makefile b/sys/modules/nfs_common/Makefile
new file mode 100644
index 0000000..8f51f18
--- /dev/null
+++ b/sys/modules/nfs_common/Makefile
@@ -0,0 +1,8 @@
+# $FreeBSD$
+
+.PATH: ${.CURDIR}/../../nfs
+
+KMOD= nfs_common
+SRCS= nfs_common.c opt_nfs.h vnode_if.h
+
+.include <bsd.kmod.mk>
diff --git a/sys/modules/nfsclient/Makefile b/sys/modules/nfsclient/Makefile
index c53e3d5..5cd3556 100644
--- a/sys/modules/nfsclient/Makefile
+++ b/sys/modules/nfsclient/Makefile
@@ -1,11 +1,11 @@
# $FreeBSD$
-.PATH: ${.CURDIR}/../../nfsclient ${.CURDIR}/../../nfs ${.CURDIR}/../../rpc
+.PATH: ${.CURDIR}/../../nfsclient ${.CURDIR}/../../rpc
KMOD= nfsclient
SRCS= vnode_if.h \
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 \
+ nfs_vfsops.c nfs_vnops.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
diff --git a/sys/modules/nfsserver/Makefile b/sys/modules/nfsserver/Makefile
index 692179b..58ab2bc 100644
--- a/sys/modules/nfsserver/Makefile
+++ b/sys/modules/nfsserver/Makefile
@@ -1,9 +1,9 @@
# $FreeBSD$
-.PATH: ${.CURDIR}/../../nfsserver ${.CURDIR}/../../nfs
+.PATH: ${.CURDIR}/../../nfsserver
KMOD= nfsserver
SRCS= vnode_if.h \
- nfs_fha.c nfs_serv.c nfs_srvkrpc.c nfs_srvsubs.c nfs_common.c \
+ nfs_fha.c nfs_serv.c nfs_srvkrpc.c nfs_srvsubs.c \
opt_mac.h \
opt_kgssapi.h \
opt_nfs.h
diff --git a/sys/nfs/nfs_common.c b/sys/nfs/nfs_common.c
index abf575f..c56f31f 100644
--- a/sys/nfs/nfs_common.c
+++ b/sys/nfs/nfs_common.c
@@ -54,6 +54,7 @@ __FBSDID("$FreeBSD$");
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/malloc.h>
+#include <sys/module.h>
#include <sys/sysent.h>
#include <sys/syscall.h>
#include <sys/sysctl.h>
@@ -79,15 +80,15 @@ nfstype nfsv3_type[9] = {
static void *nfsm_dissect_xx_sub(int s, struct mbuf **md, caddr_t *dpos,
int how);
-SYSCTL_DECL(_vfs_nfs);
+SYSCTL_NODE(_vfs, OID_AUTO, nfs_common, CTLFLAG_RD, 0, "NFS common support");
static int nfs_realign_test;
-SYSCTL_INT(_vfs_nfs, OID_AUTO, realign_test, CTLFLAG_RD, &nfs_realign_test,
- 0, "Number of realign tests done");
+SYSCTL_INT(_vfs_nfs_common, OID_AUTO, realign_test, CTLFLAG_RD,
+ &nfs_realign_test, 0, "Number of realign tests done");
static int nfs_realign_count;
-SYSCTL_INT(_vfs_nfs, OID_AUTO, realign_count, CTLFLAG_RD, &nfs_realign_count,
- 0, "Number of mbuf realignments done");
+SYSCTL_INT(_vfs_nfs_common, OID_AUTO, realign_count, CTLFLAG_RD,
+ &nfs_realign_count, 0, "Number of mbuf realignments done");
u_quad_t
nfs_curusec(void)
@@ -404,3 +405,12 @@ nfs_realign(struct mbuf **pm, int how)
}
return (0);
}
+
+static moduledata_t nfs_common_mod = {
+ "nfs_common",
+ NULL,
+ NULL
+};
+
+DECLARE_MODULE(nfs_common, nfs_common_mod, SI_SUB_VFS, SI_ORDER_ANY);
+MODULE_VERSION(nfs_common, 1);
diff --git a/sys/nfsclient/nfs_vfsops.c b/sys/nfsclient/nfs_vfsops.c
index 72ca2ce..a8f32da 100644
--- a/sys/nfsclient/nfs_vfsops.c
+++ b/sys/nfsclient/nfs_vfsops.c
@@ -147,6 +147,7 @@ MODULE_DEPEND(nfs, krpc, 1, 1, 1);
#ifdef KGSSAPI
MODULE_DEPEND(nfs, kgssapi, 1, 1, 1);
#endif
+MODULE_DEPEND(nfs, nfs_common, 1, 1, 1);
static struct nfs_rpcops nfs_rpcops = {
nfs_readrpc,
diff --git a/sys/nfsserver/nfs_srvsubs.c b/sys/nfsserver/nfs_srvsubs.c
index ee0614b..d84261e 100644
--- a/sys/nfsserver/nfs_srvsubs.c
+++ b/sys/nfsserver/nfs_srvsubs.c
@@ -560,6 +560,7 @@ DECLARE_MODULE(nfsserver, nfsserver_mod, SI_SUB_VFS, SI_ORDER_ANY);
MODULE_VERSION(nfsserver, 1);
MODULE_DEPEND(nfsserver, nfssvc, 1, 1, 1);
MODULE_DEPEND(nfsserver, krpc, 1, 1, 1);
+MODULE_DEPEND(nfsserver, nfs_common, 1, 1, 1);
/*
* Set up nameidata for a lookup() call and do it.
OpenPOWER on IntegriCloud