diff options
-rw-r--r-- | TODO | 4 | ||||
-rw-r--r-- | src/fsck.c | 10 |
2 files changed, 8 insertions, 6 deletions
@@ -5,9 +5,7 @@ Bugs: * when plymouth is disabled the console password entry stuff seems to be borked https://bugzilla.redhat.com/show_bug.cgi?id=655538 -* fsck.btrfs non-existance should not cause mounting to fail - -* single user service needs to be masked? +* systemctl default is started when we type "reboot" at rescue mode prompt Features: diff --git a/src/fsck.c b/src/fsck.c index fdcf6b43c5..7855f3ac07 100644 --- a/src/fsck.c +++ b/src/fsck.c @@ -57,7 +57,7 @@ static void start_target(const char *target, bool isolate) { else mode = "replace"; - log_debug("Running request %s/start/%s", target, mode); + log_info("Running request %s/start/%s", target, mode); if (!(m = dbus_message_new_method_call("org.freedesktop.systemd1", "/org/freedesktop/systemd1", "org.freedesktop.systemd1.Manager", "StartUnitReplace"))) { log_error("Could not allocate message."); @@ -247,12 +247,16 @@ int main(int argc, char *argv[]) { else log_error("fsck failed due to unknown reason."); - if (status.si_code == CLD_EXITED && status.si_status & 2) + if (status.si_code == CLD_EXITED && (status.si_status & 2) && root_directory) /* System should be rebooted. */ start_target(SPECIAL_REBOOT_TARGET, false); - else + else if (status.si_code == CLD_EXITED && (status.si_status & 6)) /* Some other problem */ start_target(SPECIAL_EMERGENCY_TARGET, true); + else { + r = EXIT_SUCCESS; + log_warning("Ignoring error."); + } } else r = EXIT_SUCCESS; |