modular nfsd requires kernel changes on sh, sparc64, x86_64
Subsystems (2)
Compiling and inserting a module into the currently running kernel should work without needing a reboot.
For nfsd this seems to work everywhere except on the sh, sparc64 and x86_64 architectures where adding the nfsd module changes non-modular kernel code (checked in 2.6.4-mm1):
arch/sh/kernel/entry.S:
<-- snip -->
...
#if !defined(CONFIG_NFSD) && !defined(CONFIG_NFSD_MODULE)
#define sys_nfsservctl sys_ni_syscall
#endif
...
<-- snip -->
arch/x86_64/ia32/sys_ia32.c:
<-- snip -->
...
#if defined(CONFIG_NFSD) || defined(CONFIG_NFSD_MODULE) /* Stuff for NFS server syscalls... */
struct nfsctl_svc32 {
u16 svc32_port;
s32 svc32_nthreads;
};struct nfsctl_client32 {
...
<-- snip -->
arch/sparc64/kernel/sys_sparc32.c:
<-- snip -->
...
#if defined(CONFIG_NFSD) || defined(CONFIG_NFSD_MODULE) /* Stuff for NFS server syscalls... */
struct nfsctl_svc32 {
u16 svc32_port;
s32 svc32_nthreads;
};struct nfsctl_client32 {
...
<-- snip -->
cu
Adrian
Signature · 4 lines
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon SeedQuoted 6 lines · Adrian Bunk
Compiling and inserting a module into the currently running kernel should work without needing a reboot.
For nfsd this seems to work everywhere except on the sh, sparc64 and
x86_64architectures where adding the nfsd module changes non-modular kernel code (checked in 2.6.4-mm1):
Ideally if you want to do that I would suggest you move the nfsd emulation layer into nfsd itself (compat_nfsservctl) and let it be called using a stub like the normal modular sys_nfsservctl
-Andi