lkml.org 
[lkml]   [2001]   [Sep]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Date
SubjectRe: [2.4.10-pre11 OOPS] in do_generic_file_read
Nick Piggin writes:

> I got the following oops on startup while mounting the root filesystem.
> Unfortunately there was no "Code" because of a bad EIP value. If anyone
> would like more information or anything for me to test, please CC me.

I got something similar. I would predict that you are using devfs.
The problem is that devfs doesn't set inode->i_mapping->a_ops for a
block device. Ext2 (for instance) calls init_special_inode, and pre11
added a line to that procedure to initialize that field. But devfs
doesn't use init_special_inode.

The patch below fixes the problem for me. It may be that devfs should
be calling init_special_inode instead, but that sets inode->i_fop as
well and it looks like devfs sets that a bit differently. Richard?

Paul.

diff -urN linux/fs/devfs/base.c pmac/fs/devfs/base.c
--- linux/fs/devfs/base.c Wed Sep 19 16:39:20 2001
+++ pmac/fs/devfs/base.c Wed Sep 19 17:11:01 2001
@@ -2286,6 +2286,7 @@
}
else printk ("%s: read_inode(%d): no block device from bdget()\n",
DEVFS_NAME, (int) inode->i_ino);
+ inode->i_mapping->a_ops = &def_blk_aops;
}
else if ( S_ISFIFO (de->inode.mode) ) inode->i_fop = &def_fifo_fops;
else if ( S_ISREG (de->inode.mode) ) inode->i_size = de->u.fcb.u.file.size;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-03-22 13:17    [W:0.050 / U:0.124 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site