unit: when merging a device, follow the merge first

This commit is contained in:
Lennart Poettering 2010-04-08 04:34:42 +02:00
parent aab14b13b4
commit cc91696756

5
unit.c
View file

@ -394,6 +394,8 @@ int unit_merge(Unit *u, Unit *other) {
assert(other);
assert(u->meta.manager == other->meta.manager);
other = unit_follow_merge(other);
if (other == u)
return 0;
@ -403,7 +405,8 @@ int unit_merge(Unit *u, Unit *other) {
if (u->meta.type != u->meta.type)
return -EINVAL;
if (other->meta.load_state != UNIT_STUB)
if (other->meta.load_state != UNIT_STUB &&
other->meta.load_state != UNIT_FAILED)
return -EEXIST;
/* Merge names */