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
--
"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 Seed
On Sat, Mar 13, 2004 at 06:34:44PM +0100, Adrian Bunk wrote:
> 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):
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