chiark / gitweb /
systemctl: when invokes as "reboot -f", sync()
[elogind.git] / src / systemctl / systemctl.c
index 8a3e203e9e55261f81121c790fc64b143fb47359..d9e9c2a6c32087b1c9b955fe3461f0242b7fa934 100644 (file)
@@ -7001,8 +7001,13 @@ done:
 
 static int halt_now(enum action a) {
 
-/* Make sure C-A-D is handled by the kernel from this
-         * point on... */
+        /* The kernel will automaticall flush ATA disks and suchlike
+         * on reboot(), but the file systems need to be synce'd
+         * explicitly in advance. */
+        sync();
+
+        /* Make sure C-A-D is handled by the kernel from this point
+         * on... */
         reboot(RB_ENABLE_CAD);
 
         switch (a) {