Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 41854

Summary: [ gentoo-dev-sources ] Kernel oops in ext3 xattr security
Product: Gentoo Linux Reporter: Daniel Black (RETIRED) <dragonheart>
Component: [OLD] ServerAssignee: x86-kernel (DEPRECATED) <x86-kernel>
Status: VERIFIED UPSTREAM    
Severity: major    
Priority: High    
Version: unspecified   
Hardware: x86   
OS: Linux   
URL: http://bugme.osdl.org/show_bug.cgi?id=2153
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: dmesg1
ksymopps on crash1
kernel config
codedissable at crash point
/proc/kallsyms
ksymopps on crash3
kernel_config_2.6.1-gentoo-r1
ksymoops1-2.6.2-gentoo-r1
ksymoops2-2.6.2-gentoo-r1
kernel-config-vanilla-2.6.3
2.6.3-vanilla/ksymoops

Description Daniel Black (RETIRED) gentoo-dev 2004-02-16 20:52:01 UTC
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
Comment 1 Daniel Black (RETIRED) gentoo-dev 2004-02-16 20:54:55 UTC
Created attachment 25740 [details]
dmesg1
Comment 2 Daniel Black (RETIRED) gentoo-dev 2004-02-16 20:55:40 UTC
Created attachment 25741 [details]
ksymopps on crash1
Comment 3 Daniel Black (RETIRED) gentoo-dev 2004-02-16 20:56:11 UTC
Created attachment 25742 [details]
kernel config
Comment 4 Daniel Black (RETIRED) gentoo-dev 2004-02-16 20:56:39 UTC
Created attachment 25743 [details]
codedissable at crash point
Comment 5 Daniel Black (RETIRED) gentoo-dev 2004-02-16 20:57:52 UTC
Created attachment 25744 [details]
/proc/kallsyms
Comment 6 Daniel Black (RETIRED) gentoo-dev 2004-02-16 21:01:59 UTC
Created attachment 25745 [details]
ksymopps on crash3

Other crashes info are available however the stack trace is the same.
Comment 7 Daniel Black (RETIRED) gentoo-dev 2004-02-16 21:04:36 UTC
Any more info pls just ask or catch me on irc.
Comment 8 Daniel Black (RETIRED) gentoo-dev 2004-02-18 23:20:23 UTC
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.
Comment 9 Daniel Black (RETIRED) gentoo-dev 2004-02-18 23:20:52 UTC
Created attachment 25909 [details]
ksymoops1-2.6.2-gentoo-r1
Comment 10 Daniel Black (RETIRED) gentoo-dev 2004-02-18 23:21:39 UTC
Created attachment 25910 [details]
ksymoops2-2.6.2-gentoo-r1
Comment 11 Tim Yamin (RETIRED) gentoo-dev 2004-02-19 10:14:38 UTC
Would you be able to check whether you can reproduce this on the vanilla 2.6 sources? Thanks!
Comment 12 Daniel Black (RETIRED) gentoo-dev 2004-02-19 16:47:33 UTC
Failed against vanilla sources. Submitted upstream. http://bugme.osdl.org/show_bug.cgi?id=2153
Comment 13 Daniel Black (RETIRED) gentoo-dev 2004-02-20 15:36:02 UTC
Created attachment 26005 [details]
kernel-config-vanilla-2.6.3
Comment 14 Daniel Black (RETIRED) gentoo-dev 2004-02-20 15:36:43 UTC
Created attachment 26006 [details]
2.6.3-vanilla/ksymoops
Comment 15 Daniel Black (RETIRED) gentoo-dev 2004-02-20 15:39:32 UTC
Changed to UPSTREAM - will reopen/give more details from the upstream devs as they become available.
Comment 16 Daniel Black (RETIRED) gentoo-dev 2004-03-18 01:47:16 UTC
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);