90c6f3cafa
fixes : * systemd-journald[347]: Failed to set ACL on /var/log/journal/11d90b1c0239b5b2e38ed54f513722e3/user-1000.journal, ignoring: Invalid argument - 006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch systemctl disable should remove dangling symlinks. - 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch alien childs are reported as alive when they are really dead. - 0004-journald-DO-recalculate-the-ACL-mask-but-only-if-it-.patch fixes : * systemd-journald[347]: Failed to set ACL on /var/log/journal/11d90b1c0239b5b2e38ed54f513722e3/user-1000.journal, ignoring: Invalid argument - 006-systemctl-core-allow-nuking-of-symlinks-to-removed-u.patch systemctl disable should remove dangling symlinks. - 0008-service-don-t-report-alien-child-as-alive-when-it-s-.patch alien childs are reported as alive when they are really dead. OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=390
37 lines
1.3 KiB
Diff
37 lines
1.3 KiB
Diff
From 3b1680e04cb0ff0e4cf180dbacd067f1f99316a2 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
|
Date: Mon, 3 Jun 2013 13:55:13 -0400
|
|
Subject: [PATCH 6/8] systemctl,core: allow nuking of symlinks to removed units
|
|
|
|
Before, one the unit file was deleted, install_context_for_removal()
|
|
would refuse to look for symlinks. But we can remove dangling symlinks
|
|
anyway.
|
|
|
|
In principle, package installation/deinstallation scripts should do
|
|
that before the unit is uninstalled, but they don't always do. Also,
|
|
a user might have added additional symlinks manually.
|
|
|
|
https://bugs.freedesktop.org/show_bug.cgi?id=62395
|
|
---
|
|
src/shared/install.c | 4 +++-
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/shared/install.c b/src/shared/install.c
|
|
index edf4d2a..a695e12 100644
|
|
--- a/src/shared/install.c
|
|
+++ b/src/shared/install.c
|
|
@@ -1413,7 +1413,9 @@ static int install_context_mark_for_removal(
|
|
assert_se(hashmap_move_one(c->have_installed, c->will_install, i->name) == 0);
|
|
|
|
q = unit_file_search(c, i, paths, root_dir, false);
|
|
- if (q < 0) {
|
|
+ if (q == -ENOENT) {
|
|
+ /* do nothing */
|
|
+ } else if (q < 0) {
|
|
if (r >= 0)
|
|
r = q;
|
|
|
|
--
|
|
1.8.1.4
|
|
|