performance on spinning media with ext4. - Add fix-journal-vacuum-logic.patch: fix vacuum logic in journal (bnc#789589). - Add fix-lsb-provides.patch: ensure LSB provides are correctly handled if also referenced as dependencies (bnc#809646). - Add fix-loopback-mount.patch: ensure udevd is started (and therefore static devices are created) before mounting (bnc#809820). - Update systemd-sysv-convert to search services files in new location (bnc#809695). - Add logind-nvidia-acl.diff: set ACL on nvidia devices (bnc#808319). - Add do-no-isolate-on-fsck-failure.patch: do not turn off services if fsck fails (bnc#812874) - Add wait-for-processes-killed.patch: wait for processes killed by SIGTERM before killing them with SIGKILL. - Update systemctl-options.patch to only apply SYSTEMCTL_OPTIONS to systemctl command (bnc#801878). OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=361
88 lines
3.5 KiB
Diff
88 lines
3.5 KiB
Diff
From 80cfe9e163b1c92f917e0a5e053b148fca790677 Mon Sep 17 00:00:00 2001
|
|
From: "Dr. Tilmann Bubeck" <t.bubeck@reinform.de>
|
|
Date: Fri, 4 May 2012 10:32:47 +0200
|
|
Subject: [PATCH] Do no isolate in case of emergency or severe problems
|
|
|
|
This patch changes local-fs.target and systemd-fsck to not use
|
|
"isolate" when going into emergency.
|
|
This fixes https://bugzilla.redhat.com/show_bug.cgi?id=810722
|
|
|
|
The motivation is, that when something wents wrong, we should
|
|
keep everything as it is, to let the user fix the problem. When
|
|
isolating we stop a lot of services and therefore change the
|
|
system heavily so that it gets harder for the user to fix.
|
|
|
|
An example is a crypted partition. When the fsck in a crypted
|
|
partition fails, it previously used "emergency/start/isolate"
|
|
which stops cryptsetup. Therefore if the user tries to fsck
|
|
e.g. /dev/mapper/luks-356c20ae-c7a2-4f1c-ae1d-1d290a91b691
|
|
as printed by the failing fsck, then it will not find this
|
|
device (because it got closed).
|
|
|
|
So please apply this patch to let the user see the failing
|
|
situation.
|
|
|
|
Thanks!
|
|
|
|
[zj: removed dead isolate param from start_target().]
|
|
|
|
https://bugs.freedesktop.org/show_bug.cgi?id=49463
|
|
https://bugzilla.redhat.com/show_bug.cgi?id=810722
|
|
---
|
|
src/fsck/fsck.c | 13 ++++---------
|
|
units/local-fs.target | 2 +-
|
|
2 files changed, 5 insertions(+), 10 deletions(-)
|
|
|
|
Index: systemd-195/src/fsck/fsck.c
|
|
===================================================================
|
|
--- systemd-195.orig/src/fsck/fsck.c
|
|
+++ systemd-195/src/fsck/fsck.c
|
|
@@ -40,10 +40,10 @@ static bool arg_skip = false;
|
|
static bool arg_force = false;
|
|
static bool arg_show_progress = false;
|
|
|
|
-static void start_target(const char *target, bool isolate) {
|
|
+static void start_target(const char *target) {
|
|
DBusMessage *m = NULL, *reply = NULL;
|
|
DBusError error;
|
|
- const char *mode, *basic_target = "basic.target";
|
|
+ const char *mode = "replace", *basic_target = "basic.target";
|
|
DBusConnection *bus = NULL;
|
|
|
|
assert(target);
|
|
@@ -55,11 +55,6 @@ static void start_target(const char *tar
|
|
goto finish;
|
|
}
|
|
|
|
- if (isolate)
|
|
- mode = "isolate";
|
|
- else
|
|
- mode = "replace";
|
|
-
|
|
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"))) {
|
|
@@ -379,10 +374,10 @@ int main(int argc, char *argv[]) {
|
|
|
|
if (status.si_code == CLD_EXITED && (status.si_status & 2) && root_directory)
|
|
/* System should be rebooted. */
|
|
- start_target(SPECIAL_REBOOT_TARGET, false);
|
|
+ start_target(SPECIAL_REBOOT_TARGET);
|
|
else if (status.si_code == CLD_EXITED && (status.si_status & 6))
|
|
/* Some other problem */
|
|
- start_target(SPECIAL_EMERGENCY_TARGET, true);
|
|
+ start_target(SPECIAL_EMERGENCY_TARGET);
|
|
else {
|
|
r = EXIT_SUCCESS;
|
|
log_warning("Ignoring error.");
|
|
Index: systemd-195/units/local-fs.target
|
|
===================================================================
|
|
--- systemd-195.orig/units/local-fs.target
|
|
+++ systemd-195/units/local-fs.target
|
|
@@ -9,4 +9,4 @@
|
|
Description=Local File Systems
|
|
Documentation=man:systemd.special(7)
|
|
OnFailure=emergency.target
|
|
-OnFailureIsolate=yes
|
|
+OnFailureIsolate=no
|