Re: 2.6.10-rc2-mm3 - oops on boot

From: Jan Kara
Date: Tue Nov 23 2004 - 06:42:40 EST


> Eyal Lebedinsky <eyal@xxxxxxxxxxxxxx> wrote:
> >
> > EIP is at invalidate_bdev+0x10/0x29
> > eax: 00000000 ebx: 00000000 ecx: 00000000 edx: f7ca4320
> > esi: 00000002 edi: 00000006 ebp: f7cb3400 esp: c194bef8
> > ds: 007b es: 007b ss: 0068
> > Process swapper (pid: 1, threadinfo=c194b000 task=c194aa80)
> > Stack: 00000000 00000004 c0187aa3 00000000 00000000 00000005 00000006 00000006
> > 00000000 00000000 00000000 f7cb3400 c1931f80 00000000 c0176377 f7cb3400
> > ffffffff c02cc149 00000000 ffffffff c194bf60 c02cc149 00000000 c0176498
> > Call Trace:
> > [<c0187aa3>] vfs_quota_off+0xc0/0x219
> > [<c0176377>] do_umount+0x19e/0x235
> > [<c0176498>] sys_umount+0x8a/0x8e
> > [<c03c72b0>] umount_devfs+0x17/0x1b
> > [<c03c71bd>] prepare_namespace+0x2e/0xd7
> > [<c012e2fc>] flush_workqueue+0x77/0x95
> > [<c0100454>] init+0x14e/0x18d
> > [<c0100306>] init+0x0/0x18d
> > [<c010128d>] kernel_thread_helper+0x5/0xb
> > Code: 5e 5f 5d c3 89 5c 24 1c f0 ff 43 0c eb d5 0f 0b b2 01 7f 6d 2d c0 e9 4b ff ff ff 83 ec 08 89 5c 24 04 8b 5c 24 0c e8 f5 0f 00 00 <8b> 43 04 8b 5c 24 04 8b 80 b4 00 00 00 89 44 24 0c 83 c4 08 e9
> > <0>Kernel panic - not syncing: Attempted to kill init!
>
> Well devfs has a NULL sb->s_bdev, so the oops is no surprise. However I'm
> a bit surprised that we even got that far into the quota code.
Actually I'm not that surprised as DQUOT_OFF is called on any
umount. Thanks for the fix. I'll also make DQUOT_OFF check whether
there's any sence in calling the quota code so that superblocks of
various strange filesystems are not passed to vfs_quota_off() (although
it should be safe now).

> Maybe it's a bit odd that sync_blockdev() accepts a NULL argument, but
> invalidate_bdev() does not. Whatever. This should get you going:
>
> --- 25/fs/dquot.c~vfs_quota_off-oops-fix Mon Nov 22 15:08:31 2004
> +++ 25-akpm/fs/dquot.c Mon Nov 22 15:08:49 2004
> @@ -1372,7 +1372,8 @@ int vfs_quota_off(struct super_block *sb
> mark_inode_dirty(toput[cnt]);
> iput(toput[cnt]);
> }
> - invalidate_bdev(sb->s_bdev, 0);
> + if (sb->s_bdev)
> + invalidate_bdev(sb->s_bdev, 0);
> return 0;
> }
>
> _

Honza
--
Jan Kara <jack@xxxxxxx>
SuSE CR Labs
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/