From: Franck Bui Date: Wed, 7 Feb 2018 13:08:02 +0000 (+0100) Subject: core: use id unit when retrieving unit file state (#8038) X-Git-Tag: v238~133 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9ea3a0e702e741e5a6015093dd02a2374722a62d;p=platform%2Fupstream%2Fsystemd.git core: use id unit when retrieving unit file state (#8038) Previous code was using the basename(id->fragment_path) which returned incorrect result if the unit was an instance. For example, assuming that no instances of "template" have been created so far: $ systemctl enable template@1 Created symlink from /etc/systemd/system/multi-user.target.wants/template@1.service to /usr/lib/systemd/system/template@.service. $ systemctl is-enabled template@3.service disabled $ systemctl status template@3.service ● template@3.service - openQA Worker #3 Loaded: loaded (/usr/lib/systemd/system/template@.service; enabled; vendor preset: disabled) [...] Here the unit file states reported by "status" and "is-enabled" were different. --- diff --git a/src/core/unit.c b/src/core/unit.c index 5a17efd..9a57bcf 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -3965,7 +3965,7 @@ UnitFileState unit_get_unit_file_state(Unit *u) { r = unit_file_get_state( u->manager->unit_file_scope, NULL, - basename(u->fragment_path), + u->id, &u->unit_file_state); if (r < 0) u->unit_file_state = UNIT_FILE_BAD;