]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core/unit: merge unit names after merging deps
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 15 Nov 2022 18:18:30 +0000 (03:18 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 6 Dec 2022 08:49:31 +0000 (17:49 +0900)
Before:
systemd[1]: issue-24990.service: Dependency Before=n/a dropped, merged into issue-24990.service
After:
systemd[1]: issue-24990.service: Dependency Before=test1.service dropped, merged into issue-24990.service

src/core/unit.c

index 0d52e4bf1af36ecb4a2152154f17edd13bd7a590..ea09416be5ecdf7feb3fb78fe0027059ae98fdea 100644 (file)
@@ -1165,11 +1165,6 @@ int unit_merge(Unit *u, Unit *other) {
         if (r < 0)
                 return r;
 
-        /* Merge names */
-        r = unit_merge_names(u, other);
-        if (r < 0)
-                return r;
-
         /* Redirect all references */
         while (other->refs_by_target)
                 unit_ref_set(other->refs_by_target, other->refs_by_target->source, u);
@@ -1177,6 +1172,11 @@ int unit_merge(Unit *u, Unit *other) {
         /* Merge dependencies */
         unit_merge_dependencies(u, other);
 
+        /* Merge names. It is better to do that after merging deps, otherwise the log message contains n/a. */
+        r = unit_merge_names(u, other);
+        if (r < 0)
+                return r;
+
         other->load_state = UNIT_MERGED;
         other->merged_into = u;