summaryrefslogtreecommitdiff
path: root/src/fsck
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2015-09-30 15:39:29 +0200
committerLennart Poettering <lennart@poettering.net>2015-09-30 15:39:29 +0200
commit6b68a4442e2b9343d10476810c6662b496dd250d (patch)
tree0faff86201ab734cb9c5e6555ebdb484cd350dc2 /src/fsck
parent5e6ad75f259942c33bbb0b9bfc1e8dd5cc0d96e7 (diff)
parent48db40b32332671de99e0f99c18d62f6bca91072 (diff)
Merge pull request #1394 from steelman/fsck-force-reboot
fsck: start reboot.target irreversibly
Diffstat (limited to 'src/fsck')
-rw-r--r--src/fsck/fsck.c8
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;