Re: [PATCH] Busy inodes after unmount, be more verbose in generic_shutdown_super

From: Kirill Korotaev
Date: Mon Jan 16 2006 - 18:22:39 EST


Olaf, can you please check if my patch for busy inodes from -mm tree helps you?
Patch name is fix-of-dcache-race-leading-to-busy-inodes-on-umount.patch
http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.15/2.6.15-mm4/broken-out/fix-of-dcache-race-leading-to-busy-inodes-on-umount.patch

I can also provide you a more sophisticated debug patch for this if required.

Kirill

I get 'Busy inodes after umount' very often, even with recent kernels.
Usually it remains unnoticed for a while. A bit more info about what
superblock had problems would be helpful.

bdevname() doesnt seem to be the best way for pretty-printing NFS mounts
for example. Should it just print the major:minor pair? Are there scripts or something that parse such kernel messages, should
the extra info go somewhere else?

fs/super.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)

Index: linux-2.6/fs/super.c
===================================================================
--- linux-2.6.orig/fs/super.c
+++ linux-2.6/fs/super.c
@@ -227,6 +227,7 @@ void generic_shutdown_super(struct super
{
struct dentry *root = sb->s_root;
struct super_operations *sop = sb->s_op;
+ char b[BDEVNAME_SIZE];
if (root) {
sb->s_root = NULL;
@@ -247,8 +248,9 @@ void generic_shutdown_super(struct super
/* Forget any remaining inodes */
if (invalidate_inodes(sb)) {
- printk("VFS: Busy inodes after unmount. "
- "Self-destruct in 5 seconds. Have a nice day...\n");
+ printk("VFS: (%s) Busy inodes after unmount. "
+ "Self-destruct in 5 seconds. Have a nice day...\n",
+ bdevname(sb->s_bdev, b));
}
unlock_kernel();
-
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/