forked from pool/util-linux
28 lines
835 B
Diff
28 lines
835 B
Diff
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;
|
|
}
|
|
|