From 3c6d8e57e870ed56dbb53ce62f0a3d32de101cd8 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 12 Apr 2016 16:13:28 +0200 Subject: systemctl: when we want to know whether there's a native unit file, don't choke on ELOOP ELOOP indicates that there's a symlink in /etc for a native unit file, and that's completely OK. --- src/systemctl/systemctl.c | 4 ++-- src/sysv-generator/sysv-generator.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 9efdc63dde..f0e788a508 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -5272,9 +5272,9 @@ static int enable_sysv_units(const char *verb, char **args) { continue; j = unit_file_exists(arg_scope, &paths, name); - if (j < 0) + if (j < 0 && !IN_SET(j, -ELOOP, -ESHUTDOWN, -EADDRNOTAVAIL)) return log_error_errno(j, "Failed to lookup unit file state: %m"); - found_native = j > 0; + found_native = j != 0; /* If we have both a native unit and a SysV script, enable/disable them both (below); for is-enabled, * prefer the native unit */ diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c index cae920eb3b..9392a3d2b5 100644 --- a/src/sysv-generator/sysv-generator.c +++ b/src/sysv-generator/sysv-generator.c @@ -807,10 +807,10 @@ static int enumerate_sysv(const LookupPaths *lp, Hashmap *all_services) { continue; r = unit_file_exists(UNIT_FILE_SYSTEM, lp, name); - if (r < 0) { + if (r < 0 && !IN_SET(r, -ELOOP, -ESHUTDOWN, -EADDRNOTAVAIL)) { log_debug_errno(r, "Failed to detect whether %s exists, skipping: %m", name); continue; - } else if (r > 0) { + } else if (r != 0) { log_debug("Native unit for %s already exists, skipping.", name); continue; } -- cgit v1.2.3-54-g00ecf