From: Lennart Poettering Date: Thu, 6 Nov 2014 14:20:29 +0000 (+0100) Subject: systemctl: when invokes as "reboot -f", sync() X-Git-Tag: v218~523 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=4a3ad39957399c4a30fc472a804e72907ecaa4f9;p=elogind.git systemctl: when invokes as "reboot -f", sync() We do this in the clean shutdown path in shutdown.c, hence we should do is for "reboot -f", too. --- diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 8a3e203e9..d9e9c2a6c 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) {