[PATCH 04/13] Revert "UBUNTU: SAUCE: sync before umount to reduce time taken by ext4 umount"

Leann Ogasawara leann.ogasawara at canonical.com
Fri May 21 23:17:46 UTC 2010


>From d64d436800f34cbfedbb1b65079195b6bc445a1f Mon Sep 17 00:00:00 2001
From: Leann Ogasawara <leann.ogasawara at canonical.com>
Date: Fri, 21 May 2010 14:31:13 -0700
Subject: [PATCH 04/13] Revert "UBUNTU: SAUCE: sync before umount to reduce time taken by ext4 umount"

This reverts commit 0e6224656c7bb48af82a28f702af1e475bf0eea5.

This was a temporary fix for http://launchpad.net/bugs/543617 and
resulted in negative side affects performance wise.  The proper fix has
been submitted for 2.6.35 - http://lkml.org/lkml/2010/5/21/361

writeback: fix WB_SYNC_NONE writeback from umount
writeback: ensure that WB_SYNC_NONE writeback with sb pinned is sync

Signed-off-by: Leann Ogasawara <leann.ogasawara at canonical.com>
---
 fs/namespace.c     |    7 -------
 fs/sync.c          |    2 +-
 include/linux/fs.h |    1 -
 3 files changed, 1 insertions(+), 9 deletions(-)

diff --git a/fs/namespace.c b/fs/namespace.c
index 6c52c5c..118e0c3 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -33,7 +33,6 @@
 #include <asm/unistd.h>
 #include "pnode.h"
 #include "internal.h"
-#include <linux/fs.h>
 
 #define HASH_SHIFT ilog2(PAGE_SIZE / sizeof(struct list_head))
 #define HASH_SIZE (1UL << HASH_SHIFT)
@@ -1159,12 +1158,6 @@ SYSCALL_DEFINE2(umount, char __user *, name, int, flags)
 	if (!capable(CAP_SYS_ADMIN))
 		goto dput_and_out;
 
-	/* Temporary solution to fix long umount periods till
-	 * we find the real fix
-	 */
-	sync_filesystems(0);
-	sync_filesystems(1);
-
 	retval = do_umount(path.mnt, flags);
 dput_and_out:
 	/* we mustn't call path_put() as that would clear mnt_expiry_mark */
diff --git a/fs/sync.c b/fs/sync.c
index 668a85f..92b2281 100644
--- a/fs/sync.c
+++ b/fs/sync.c
@@ -91,7 +91,7 @@ EXPORT_SYMBOL_GPL(sync_filesystem);
  * flags again, which will cause process A to resync everything.  Fix that with
  * a local mutex.
  */
-void sync_filesystems(int wait)
+static void sync_filesystems(int wait)
 {
 	struct super_block *sb;
 	static DEFINE_MUTEX(mutex);
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 7258c32..44f35ae 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -1968,7 +1968,6 @@ static inline int thaw_bdev(struct block_device *bdev, struct super_block *sb)
 	return 0;
 }
 #endif
-extern void sync_filesystems(int wait);
 extern int sync_filesystem(struct super_block *);
 extern const struct file_operations def_blk_fops;
 extern const struct file_operations def_chr_fops;
-- 
1.7.0.4







More information about the kernel-team mailing list