@@ -0,0 +1,23 @@
+diff -Nurw util-linux-ng-2.16.orig/mount/umount.c util-linux-ng-2.16/mount/umount.c
+--- util-linux-ng-2.16.orig/mount/umount.c 2009-07-04 01:20:06.000000000 +0200
++++ util-linux-ng-2.16/mount/umount.c 2009-09-29 14:50:44.000000000 +0200
+@@ -361,6 +361,7 @@
+ umount_all (char *types, char *test_opts) {
+ struct mntentchn *mc, *hd;
+ int errors = 0;
++ int do_sync = 0;
+
+ hd = mtab_head();
+ if (!hd->prev)
+@@ -370,9 +371,11 @@
+ && 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;
+ }
+ }
+
++ if (do_sync)
+ sync ();
+ return errors;
+ }
|