mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-11 05:17:44 +03:00
fsck: do not fail boot if fsck returns with an error code that hasn't 2 or 6 set
This commit is contained in:
parent
83cc030fad
commit
a4c24ff75a
4
TODO
4
TODO
@ -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:
|
||||
|
||||
|
10
src/fsck.c
10
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;
|
||||
|
Loading…
Reference in New Issue
Block a user