Index: util-linux-ng-2.14.1/mount/umount.c
===================================================================
--- util-linux-ng-2.14.1.orig/mount/umount.c	2008-11-20 15:01:09.000000000 +0100
+++ util-linux-ng-2.14.1/mount/umount.c	2008-11-20 15:04:39.000000000 +0100
@@ -384,6 +384,7 @@ static int
 umount_all (char *types, char *test_opts) {
      struct mntentchn *mc, *hd;
      int errors = 0;
+     int do_sync = 0;
 
      lock_mtab();
      hd = mtab_head();
@@ -394,11 +395,13 @@ umount_all (char *types, char *test_opts
 	      && matching_opts (mc->m.mnt_opts, test_opts)) {
 	       errors |= umount_one (mc->m.mnt_fsname, mc->m.mnt_dir,
 				     mc->m.mnt_type, mc->m.mnt_opts, mc);
+	       do_sync = 1;
 	  }
      }
      unlock_mtab();
 
-     sync ();
+     if (do_sync)
+         sync ();
      return errors;
 }