Invalid inode->i_sb in clear_inode()? (was Re: Kernel Oops, 2.2.7)

Steve Dodd (dirk@loth.demon.co.uk)
Wed, 5 May 1999 16:51:03 +0100


On Wed, May 05, 1999 at 06:53:56AM -0400, Michael B. Trausch wrote:

> Code: c0131556 <clear_inode+36/50> 00000000 <_EIP>: <===
> Code: c0131556 <clear_inode+36/50> 0: 8b 40 24 movl 0x24(%eax),%eax <===
> Code: c0131559 <clear_inode+39/50> 3: 85 c0 testl %eax,%eax
> Code: c013155b <clear_inode+3b/50> 5: 74 06 je c0131563 <clear_inode+43/50>
> Code: c013155d <clear_inode+3d/50> 7: 53 pushl %ebx
> Code: c013155e <clear_inode+3e/50> 8: ff d0 call *%eax
> Code: c0131560 <clear_inode+40/50> a: 83 c4 04 addl $0x4,%esp
> Code: c0131563 <clear_inode+43/50> d: c7 83 84 00 00 movl $0x0,0x84(%ebx)

Okay, I reckon that looks like this bit of code:

;0239 if (inode->i_sb && inode->i_sb->s_op && inode->i_sb->s_op->clear_inode)
.LM200:
movl 104(%ebx),%eax
testl %eax,%eax
je .L869
movl 24(%eax),%eax <====
testl %eax,%eax
je .L869
movl 36(%eax),%eax
testl %eax,%eax
je .L869
;0240 inode->i_sb->s_op->clear_inode(inode);
.LM201:

Making a wild stab in the dark, I'd say that inode->i_sb points somewhere
silly for this inode. I don't know why that should happen. This is probably
a job for Mr. Viro, but I'll keep looking up the stack trace in case anything
obvious leaps out at me.

Nothing in your system is marginal is it, as far as you know? Overheating
CPU, bad memory or whatever /might/ conceivably be causing this (via random
memory hosing), but I've seen this exact report before..

You did say in your mail that you haven't been smoking any weird patches,
right? :)

-- 
If smoking is so bad for you, how come it cures kippers?

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/