nfsd problems in 2.6.3-rc1-mm1

Submitted by lewk
on February 10, 2004 - 11:01pm

Andrew Morton's [interview] latest patchset, 2.6.3-rc1-mm1 [story], seems to have some issues with nfsd. A user on the Kernel Mailing List stated that after his upgrade, "Exportfs just hangs". Andrew released a patch for this soon after the release, which can be found here. Read on for more information.


From: Philippe Gramoullé [email blocked]
To: Kernel Mailing List [email blocked]
Date: Mon, 9 Feb 2004 15:18:18 +0100
Subject: Re: 2.6.3-rc1-mm1

Hello Andrew,


On Mon, 9 Feb 2004 01:40:35 -0800
Andrew Morton [email blocked] wrote:


  |
  |
  | ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.3-rc1/2.6.3-rc1-mm1/
  |
  |
  | - NFSD update
  |


Starting with 2.6.3-rc1-mm1, nfsd isn't working any more. Exportfs just hangs.
Previous version (2.6.2-mm1) worked fine.

Reverting the following patches makes it work again:


nfsd-01-schedule-in-spinlock-fix.patch
nfsd-02-ip_map_init-kmalloc-check.patch
nfsd-03-sunrpc-cache-init-fixes.patch
nfsd-04-convert-proc-to-seq_file.patch
nfsd-05-no-procfs-build-fix.patch

You can find my .config here:
http://philou.org/linux/2.6.3-rc1-mm1/config-2.6.3-rc1-mm1
You can find an strace of the nfsd server startup as well as a sysrq-t capture here:
http://philou.org/linux/2.6.3-rc1-mm1/nfsd-sysrq.txt
System is a Dell 2650 SMP (ia32), running Debian Sid.
Thanks,


Philippe

--

Philippe Gramoullé
[email blocked]
Senior System and Network Architect
Lycos Europe


From: Andrew Morton [email blocked] To: Kernel Mailing List [email blocked] Subject Re: 2.6.3-rc1-mm1 Date: Mon, 9 Feb 2004 15:58:23 -0800 Philippe Gramoullé [email blocked] wrote: > Starting with 2.6.3-rc1-mm1, nfsd isn't working any more. Exportfs just hangs. Yes, sorry. The nfsd patches had a painful birth. This chunk got lost. --- 25/net/sunrpc/svcauth.c~nfsd-02-sunrpc-cache-init-fixes Mon Feb 9 14:04:03 2004 +++ 25-akpm/net/sunrpc/svcauth.c Mon Feb 9 14:06:26 2004 @@ -150,7 +150,13 @@ DefineCacheLookup(struct auth_domain, &auth_domain_cache, auth_domain_hash(item), auth_domain_match(tmp, item), - kfree(new); if(!set) return NULL; + kfree(new); if(!set) { + if (new) + write_unlock(&auth_domain_cache.hash_lock); + else + read_unlock(&auth_domain_cache.hash_lock); + return NULL; + } new=item; atomic_inc(&new->h.refcnt), /* no update */, 0 /* no inplace updates */ _

Related Links: