From: Lennart Poettering Date: Fri, 24 Apr 2015 15:28:06 +0000 (+0200) Subject: unit: don't add automatic dependencies on device units if they aren't supported X-Git-Tag: v220~310 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=47bc12e1ba35d38edda737dae232088d6d3ae688;p=thirdparty%2Fsystemd.git unit: don't add automatic dependencies on device units if they aren't supported http://lists.freedesktop.org/archives/systemd-devel/2015-April/031187.html --- diff --git a/src/core/unit.c b/src/core/unit.c index 2b356e28548..730492e2262 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -2846,14 +2846,18 @@ int unit_add_node_link(Unit *u, const char *what, bool wants) { assert(u); - if (!what) - return 0; - /* Adds in links to the device node that this unit is based on */ + if (isempty(what)) + return 0; if (!is_device_path(what)) return 0; + /* When device units aren't supported (such as in a + * container), don't create dependencies on them. */ + if (unit_vtable[UNIT_DEVICE]->supported && !unit_vtable[UNIT_DEVICE]->supported(u->manager)) + return 0; + e = unit_name_from_path(what, ".device"); if (!e) return -ENOMEM;