While running a NFS server on a ext3 filesystem (selinux kernel gentoo-dev-sources 2.6.1-gentoo) the attached kernel opps was generated. On the client machine I had the entire portage tree mount (/usr/portage) with options (noatime). Server export options were (rw,no_root_squash,sync) I was undertakeing a "env ACCEPT_KEYWORDS="~x86" emerge -pvuUD world" on the client machine when the crash occured. nfs-util-1.0.6 on client and server. uname -a Linux spider 2.6.1-gentoo #2 Tue Jan 27 15:40:59 CST 2004 i686 Pentium III (Coppermine) GenuineIntel GNU/Linux
Created attachment 25740 [details] dmesg1
Created attachment 25741 [details] ksymopps on crash1
Created attachment 25742 [details] kernel config
Created attachment 25743 [details] codedissable at crash point
Created attachment 25744 [details] /proc/kallsyms
Created attachment 25745 [details] ksymopps on crash3 Other crashes info are available however the stack trace is the same.
Any more info pls just ask or catch me on irc.
Created attachment 25908 [details] kernel_config_2.6.1-gentoo-r1 In a vain hope that a kernel verion bump would help I upgraded to 2.6.2-gentoo-r1. Similar fault.
Created attachment 25909 [details] ksymoops1-2.6.2-gentoo-r1
Created attachment 25910 [details] ksymoops2-2.6.2-gentoo-r1
Would you be able to check whether you can reproduce this on the vanilla 2.6 sources? Thanks!
Failed against vanilla sources. Submitted upstream. http://bugme.osdl.org/show_bug.cgi?id=2153
Created attachment 26005 [details] kernel-config-vanilla-2.6.3
Created attachment 26006 [details] 2.6.3-vanilla/ksymoops
Changed to UPSTREAM - will reopen/give more details from the upstream devs as they become available.
The following patched fixed the problem. This has been applied to the 2.6.4 kernel. Thanks to the kernel devs for their help. fs/dcache.c @@ -895,7 +895,7 @@ struct dentry *d_splice_alias(struct ino new = list_entry(inode->i_dentry.next, struct dentry, d_alias); __dget_locked(new); spin_unlock(&dcache_lock); - security_d_instantiate(dentry, inode); + security_d_instantiate(new, inode); d_rehash(dentry); d_move(new, dentry); iput(inode);