mirror of
https://github.com/systemd/systemd.git
synced 2025-01-10 05:18:17 +03:00
systemctl: restore the no-sync option for legacy halt (#3249)
The sync() call on shutdown had been removed with commit57371e5829
together with the no-sync option for the shutdown commands. The sync call was restored in commit4a3ad39957
but the no-sync option wasn't re-added. I think we should restore this option at least for the legacy halt command.
This commit is contained in:
parent
cfd75d5e79
commit
f3f054f03e
@ -132,6 +132,14 @@
|
||||
entry.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-n</option></term>
|
||||
<term><option>--no-sync</option></term>
|
||||
|
||||
<listitem><para>Don't sync hard disks/storage media before
|
||||
halt, power-off, reboot.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>--no-wall</option></term>
|
||||
|
||||
|
@ -102,6 +102,7 @@ static bool arg_no_block = false;
|
||||
static bool arg_no_legend = false;
|
||||
static bool arg_no_pager = false;
|
||||
static bool arg_no_wtmp = false;
|
||||
static bool arg_no_sync = false;
|
||||
static bool arg_no_wall = false;
|
||||
static bool arg_no_reload = false;
|
||||
static bool arg_value = false;
|
||||
@ -6926,6 +6927,7 @@ static int halt_parse_argv(int argc, char *argv[]) {
|
||||
{ "force", no_argument, NULL, 'f' },
|
||||
{ "wtmp-only", no_argument, NULL, 'w' },
|
||||
{ "no-wtmp", no_argument, NULL, 'd' },
|
||||
{ "no-sync", no_argument, NULL, 'n' },
|
||||
{ "no-wall", no_argument, NULL, ARG_NO_WALL },
|
||||
{}
|
||||
};
|
||||
@ -6971,13 +6973,16 @@ static int halt_parse_argv(int argc, char *argv[]) {
|
||||
arg_no_wtmp = true;
|
||||
break;
|
||||
|
||||
case 'n':
|
||||
arg_no_sync = true;
|
||||
break;
|
||||
|
||||
case ARG_NO_WALL:
|
||||
arg_no_wall = true;
|
||||
break;
|
||||
|
||||
case 'i':
|
||||
case 'h':
|
||||
case 'n':
|
||||
/* Compatibility nops */
|
||||
break;
|
||||
|
||||
@ -7496,7 +7501,8 @@ static int halt_now(enum action a) {
|
||||
/* The kernel will automaticall flush ATA disks and suchlike
|
||||
* on reboot(), but the file systems need to be synce'd
|
||||
* explicitly in advance. */
|
||||
(void) sync();
|
||||
if (!arg_no_sync)
|
||||
(void) sync();
|
||||
|
||||
/* Make sure C-A-D is handled by the kernel from this point
|
||||
* on... */
|
||||
|
Loading…
Reference in New Issue
Block a user