I can make the problem disappear (!) by placing a printk() in the ext3 module init function, like this:
--- super.c.orig 2004-09-01 21:21:08.000000000 +0200 +++ super.c 2004-09-01 22:30:54.000000000 +0200 @@ -2337,6 +2337,7 @@ static int __init init_ext3_fs(void) { int err = init_ext3_xattr(); + printk(KERN_ERR "[%d] init_ext3_fs(), err = %d\n", __LINE__, err); if (err) return err; err = init_inodecache();
Like this it also works:
--- super.c.orig 2004-09-01 21:21:08.000000000 +0200 +++ super.c 2004-09-01 22:31:28.000000000 +0200 @@ -2339,6 +2339,7 @@ int err = init_ext3_xattr(); if (err) return err; + printk(KERN_ERR "[%d] init_ext3_fs(), err = %d\n", __LINE__, err); err = init_inodecache(); if (err) goto out1;
In both cases, err = 0 But one more line down and I have the OOPS back again:
--- super.c.orig 2004-09-01 21:21:08.000000000 +0200 +++ super.c 2004-09-01 22:36:46.000000000 +0200 @@ -2340,6 +2340,7 @@ if (err) return err; err = init_inodecache(); + printk(KERN_ERR "[%d] init_ext3_fs(), err = %d\n", __LINE__, err); if (err) goto out1; err = register_filesystem(&ext3_fs_type);
I don't think placing a strategic printk() qualifies as a fix though :-)
Maybe GCC is to blame here. I'm using gcc 3.3.4-6sarge1.0.1 (current from testing)
Is it safe to use GCC 3.4.1 on this kernel?
Jan-Jaap