diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 8a3e203e9e..d9e9c2a6c3 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -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) {