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
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2013-06-03 13:55:13 -04:00
parent 5b46fc6c60
commit 02b9e969a6

View file

@ -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;