Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Feb 2010 00:07:14 +0200
From:      Kostik Belousov <kostikbel@gmail.com>
To:        Boris Kochergin <spawk@acm.poly.edu>
Cc:        marius@freebsd.org, Rick Macklem <rmacklem@uoguelph.ca>, FreeBSD-STABLE Mailing List <freebsd-stable@freebsd.org>
Subject:   Re: Can't load NFS server module with a custom 8.0 kernel
Message-ID:  <20100218220714.GU50403@deviant.kiev.zoral.com.ua>
In-Reply-To: <4B7D9C5C.1090909@acm.poly.edu>
References:  <4B7D74A7.6010006@acm.poly.edu> <Pine.GSO.4.63.1002181455240.22960@muncher.cs.uoguelph.ca> <4B7D9C5C.1090909@acm.poly.edu>

next in thread | previous in thread | raw e-mail | index | archive | help

--TOcFo/l1T3s1H/TJ
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Thu, Feb 18, 2010 at 03:00:28PM -0500, Boris Kochergin wrote:
> Rick Macklem wrote:
> >
> >
> >On Thu, 18 Feb 2010, Boris Kochergin wrote:
> >
> >>Ahoy. I didn't get any replies to this on -net, so I thought I'd try=20
> >>here. I have an 8.0-RELEASE-p2/amd64 machine running a custom kernel=20
> >>(configuration file at http://acm.poly.edu/~spawk/ACM) and I am=20
> >>unable to use the NFS server module on it. After loading the nfssvc=20
> >>module, attempting to load the nfsserver module fails and the=20
> >>following appears in dmesg:
> >>
> >>Feb  3 19:35:54 acm kernel: link_elf_obj: symbol svcpool_create=20
> >>undefined
> >>Feb  3 19:35:54 acm kernel: linker_load_file: Unsupported file type
> >>
> >>I see a reference to the problem at=20
> >>http://lists.freebsd.org/pipermail/svn-src-all/2008-November/001025.htm=
l.=20
> >>Am I missing something or has it never gotten resolved? Thanks.
> >>
> >I don't know diddly about the module loading stuff, but you could try
> >this patch. (svcpool_create() is a part of the krpc, which is listed
> >as a module that nfsserver depends on)
> >
> >rick
> >--- untested patch for nfs_srvsubs.c ---
> >--- nfsserver/nfs_srvsubs.c.sav    2010-02-18 14:41:52.000000000 -0500
> >+++ nfsserver/nfs_srvsubs.c    2010-02-18 14:42:12.000000000 -0500
> >@@ -554,7 +554,7 @@
> >     nfsrv_modevent,
> >     NULL,
> > };
> >-DECLARE_MODULE(nfsserver, nfsserver_mod, SI_SUB_VFS, SI_ORDER_ANY);
> >+DECLARE_MODULE(nfsserver, nfsserver_mod, SI_SUB_VFS, SI_ORDER_FIRST);
> >
> > /* So that loader and kldload(2) can find us, wherever we are.. */
> > MODULE_VERSION(nfsserver, 1);
> Thanks for the patch, but the problem persists with it, I'm afraid.

I think this is changed in HEAD, and part of the changes are already in
stable/8, which is different from 8.0 too.

Anyway, for HEAD nfsserver we need 1. nfscommon 2. nfs_common. Also,
nfs_common module is not attached to the build.

The patch below gives up on nfs_common, puts that parts into nfscommon,
and corrects dependencies for nfsserver and nfsclient. With the patch,
I can export and mount nfs filesystem on the HEAD again, with all
nfs* stuff loaded as modules. If following this route, sys/modules/nfs_comm=
on
can be removed.

I did not looked into fs/nfs* modules.

diff --git a/sys/modules/nfscommon/Makefile b/sys/modules/nfscommon/Makefile
index a3d75a7..df8702c 100644
--- a/sys/modules/nfscommon/Makefile
+++ b/sys/modules/nfscommon/Makefile
@@ -1,8 +1,9 @@
 # $FreeBSD$
=20
-.PATH: ${.CURDIR}/../../fs/nfs=20
+.PATH: ${.CURDIR}/../../fs/nfs ${.CURDIR}/../../nfs
 KMOD=3D	nfscommon
 SRCS=3D	vnode_if.h \
+	nfs_common.c \
 	nfs_commonacl.c \
 	nfs_commonkrpc.c \
 	nfs_commonport.c \
diff --git a/sys/nfsclient/nfs_vfsops.c b/sys/nfsclient/nfs_vfsops.c
index a8f32da..61cd7b8 100644
--- a/sys/nfsclient/nfs_vfsops.c
+++ b/sys/nfsclient/nfs_vfsops.c
@@ -147,7 +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);
+MODULE_DEPEND(nfs, nfscommon, 1, 1, 1);
=20
 static struct nfs_rpcops nfs_rpcops =3D {
 	nfs_readrpc,
diff --git a/sys/nfsserver/nfs_srvsubs.c b/sys/nfsserver/nfs_srvsubs.c
index d84261e..f76c983 100644
--- a/sys/nfsserver/nfs_srvsubs.c
+++ b/sys/nfsserver/nfs_srvsubs.c
@@ -560,7 +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);
+MODULE_DEPEND(nfsserver, nfscommon, 1, 1, 1);
=20
 /*
  * Set up nameidata for a lookup() call and do it.

--TOcFo/l1T3s1H/TJ
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (FreeBSD)

iEYEARECAAYFAkt9uhIACgkQC3+MBN1Mb4jRIQCggHO1Y2F9o6J7hmp4IdRT48AK
sWoAoMmKyQnja16w7JPzmQIGvUbpiz4W
=zr+x
-----END PGP SIGNATURE-----

--TOcFo/l1T3s1H/TJ--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100218220714.GU50403>