[PATCH] Hold BKL for shorter period in generic_shutdown_super().

From: Robin Holt
Date: Tue Nov 16 2004 - 15:51:15 EST



Testing revealed long pauses of the entire system while autofs initiated
umounts as a result of timing out the mounts.

It was noticed that during a umount, the BKL is held while scanning
the inode_list and removing and inodes that are candidates. This patch
moves locking until after the first pass had gone through the inode_list.

Testing revelead that on an ia64 machine with a filesystem that had
8.4 Million inodes, there were no observable pauses during the umount.
This was down from over 4 seconds without this patch.

Signed-Off-By: Robin Holt <holt@xxxxxxx>


Index: linux/fs/super.c
===================================================================
--- linux.orig/fs/super.c 2004-11-16 14:41:37.213825056 -0600
+++ linux/fs/super.c 2004-11-16 14:41:49.027032016 -0600
@@ -233,10 +233,10 @@
dput(root);
fsync_super(sb);
lock_super(sb);
- lock_kernel();
sb->s_flags &= ~MS_ACTIVE;
/* bad name - it should be evict_inodes() */
invalidate_inodes(sb);
+ lock_kernel();

if (sop->write_super && sb->s_dirt)
sop->write_super(sb);

-
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/