2004-03-13 17:35:45

by Adrian Bunk

[permalink] [raw]
Subject: modular nfsd requires kernel changes on sh, sparc64, x86_64

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


2004-03-13 18:05:19

by Andi Kleen

[permalink] [raw]
Subject: Re: modular nfsd requires kernel changes on sh, sparc64, x86_64

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