On Tue, 29 May 2007 23:38:13 +0400 Alexey Dobriyan <[EMAIL PROTECTED]> wrote:
> On Tue, May 29, 2007 at 11:40:42AM -0400, Jeff Layton wrote: > > After spending quite a bit of time tracking down a "VFS: busy inodes > > after unmount" problem, it occurs to me that it would be nice to be > > able to force a panic when that occurs. While an oops message alone is > > not generally helpful for tracking down this sort of problem, > > collecting and analyzing a coredump when this occurs can be. > > > > The following patch adds a procfs tunable that allows you to force a > > core when a "busy inodes after umount" problem occurs. It also changes > > the classic error message to be something a bit less cryptic to users. > > > @@ -303,10 +305,15 @@ void generic_shutdown_super(struct super_block *sb) > > sop->put_super(sb); > > > > /* Forget any remaining inodes */ > > - if (invalidate_inodes(sb)) { > > - printk("VFS: Busy inodes after unmount of %s. " > > - "Self-destruct in 5 seconds. Have a nice day...\n", > > - sb->s_id); > > + if (busy = invalidate_inodes(sb)) { > > + printk("VFS: %d busy inodes after unmount of %s. ", > > + busy, sb->s_id); > > + if (umount_debug != 0) { > > + printk("Crashing host on request.\n"); > > + BUG(); > > + } else { > > + printk("This machine will likely crash > > eventually. Consider a reboot.\n"); > > + } > > You can add just BUG_ON here and do > > echo 1 >/proc/sys/kernel/panic_on_oops > I certainly could, but the problem is that there's little point in panicing immediately here if you can't collect a coredump. Oops messages aren't very helpful for tracking this sort of thing down, so I'd think we want the BUG() conditional on something more granular than panic_on_oops. -- Jeff Layton <[EMAIL PROTECTED]> - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html