diff options
author | Lennart Poettering <lennart@poettering.net> | 2015-09-30 15:39:29 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2015-09-30 15:39:29 +0200 |
commit | 6b68a4442e2b9343d10476810c6662b496dd250d (patch) | |
tree | 0faff86201ab734cb9c5e6555ebdb484cd350dc2 | |
parent | 5e6ad75f259942c33bbb0b9bfc1e8dd5cc0d96e7 (diff) | |
parent | 48db40b32332671de99e0f99c18d62f6bca91072 (diff) |
Merge pull request #1394 from steelman/fsck-force-reboot
fsck: start reboot.target irreversibly
-rw-r--r-- | src/fsck/fsck.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/fsck/fsck.c b/src/fsck/fsck.c index 8e790b85ae..30c846f01d 100644 --- a/src/fsck/fsck.c +++ b/src/fsck/fsck.c @@ -60,7 +60,7 @@ static bool arg_force = false; static bool arg_show_progress = false; static const char *arg_repair = "-a"; -static void start_target(const char *target) { +static void start_target(const char *target, const char *mode) { _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; _cleanup_bus_flush_close_unref_ sd_bus *bus = NULL; int r; @@ -83,7 +83,7 @@ static void start_target(const char *target) { "StartUnitReplace", &error, NULL, - "sss", "basic.target", target, "replace"); + "sss", "basic.target", target, mode); /* Don't print a warning if we aren't called during startup */ if (r < 0 && !sd_bus_error_has_name(&error, BUS_ERROR_NO_SUCH_JOB)) @@ -463,10 +463,10 @@ int main(int argc, char *argv[]) { if (status.si_code == CLD_EXITED && (status.si_status & FSCK_SYSTEM_SHOULD_REBOOT) && root_directory) /* System should be rebooted. */ - start_target(SPECIAL_REBOOT_TARGET); + start_target(SPECIAL_REBOOT_TARGET, "replace-irreversibly"); else if (status.si_code == CLD_EXITED && (status.si_status & (FSCK_SYSTEM_SHOULD_REBOOT | FSCK_ERRORS_LEFT_UNCORRECTED))) /* Some other problem */ - start_target(SPECIAL_EMERGENCY_TARGET); + start_target(SPECIAL_EMERGENCY_TARGET, "replace"); else { log_warning("Ignoring error."); r = 0; |