It looks real. It was executing this line of clear_inode in fs/inode.c:
380 if (inode->i_sb && inode->i_sb->s_op && inode->i_sb->s_op->clear_inode)
^^^^^^^^^^^^^
and it blew up here ----->
Seemingly, the page the inode's sb->super_block_operations lives on was freed
between the test of i_sb->s_op and ->s_op->clear_inode. This gets out of my
territory. Other than SMP, I don't see how this can happen. I reformatted
your oops (gack, too many timestamps) and provided a disassembly....
Unable to handle kernel paging request at virtual address c4870840
printing eip:
c013d747
*pde = 03d61063
*pte = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[clear_inode+159/216]
EFLAGS: 00010282
eax: c4870820 ebx: c338f4a0 ecx: c338f4a8 edx: c1169fa4
esi: c1169fa4 edi: c1dccde8 ebp: c1169fac esp: c1169f78
ds: 0018 es: 0018 ss: 0018
Process kswapd (pid: 3, stackpage=c1169000)
Stack: c338f4a0 c013d7bf c338f4a0 c1dccc08 c1dccc00 c013d9c2 c1169fa4 000000ee
00000004 00000000 000003b3 c2c8fde8 c3e38bc8 00000000 c013d9f1 00000000
c0126453 00000006 00000004 00000006 00000004 00010f00 c01d32d7 c1168239
Call Trace: [dispose_list+63/88] [prune_icache+234/248] [shrink_icache_memory+33/48]
[do_try_to_free_pages+91/128] [kswapd+116/272] [kernel_thread+40/56]
Code: 8b 40 20 85 c0 74 06 53 ff d0 83 c4 04 8b 83 e0 00 00 00 85
0: 8b 40 20 mov 0x20(%eax),%eax
3: 85 c0 test %eax,%eax
5: 74 06 je d <_EIP+0xd> 0000000d Before first symbol
7: 53 push %ebx
8: ff d0 call *%eax
a: 83 c4 04 add $0x4,%esp
d: 8b 83 e0 00 00 00 mov 0xe0(%ebx),%eax
13: 85 00 test %eax,(%eax)
-- Daniel - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/