From: Zbigniew Jędrzejewski-Szmek Date: Mon, 3 Jun 2013 17:55:13 +0000 (-0400) Subject: systemctl,core: allow nuking of symlinks to removed units X-Git-Tag: v205~176 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=02b9e969;p=elogind.git 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 --- diff --git a/src/shared/install.c b/src/shared/install.c index 954dcb1e7..d2dd27680 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;