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; }