Skip to contentSkip to conversation

modular nfsd requires kernel changes on sh, sparc64, x86_64

DISCUSSION Adrian Bunk 2 participants 2 messages Mar 13, 2004

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

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 Seed
#1 lore raw
Quoted 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_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