X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fmachine%2Fmachine.c;h=8e03ff2ec1eaa5942ffdb5426325f94989617e0c;hp=7d64abe5dd9635ee5c2183f6c63b752c67ffe5c0;hb=d0af76e68a5bab2e4fd9674b1c64a9f38d7afe97;hpb=8b6fe8243d6a46d7435fb6789481489c44549cfb diff --git a/src/machine/machine.c b/src/machine/machine.c index 7d64abe5d..8e03ff2ec 100644 --- a/src/machine/machine.c +++ b/src/machine/machine.c @@ -228,34 +228,36 @@ static int machine_start_scope(Machine *m) { dbus_error_init(&error); if (!m->scope) { - char *escaped = NULL; + _cleanup_free_ char *escaped = NULL; + char *scope; escaped = unit_name_escape(m->name); if (!escaped) return log_oom(); - m->scope = strjoin("machine-", escaped, ".scope", NULL); - free(escaped); - - if (!m->scope) + scope = strjoin("machine-", escaped, ".scope", NULL); + if (scope) return log_oom(); - r = hashmap_put(m->manager->machine_units, m->scope, m); - if (r < 0) - log_warning("Failed to create mapping between unit and machine"); - } + description = strappend(m->class == MACHINE_VM ? "Virtual Machine " : "Container ", m->name); - description = strappend(m->class == MACHINE_VM ? "Virtual Machine " : "Container ", m->name); + r = manager_start_scope(m->manager, m->scope, m->leader, SPECIAL_MACHINE_SLICE, description, &error, &job); + if (r < 0) { + log_error("Failed to start machine scope: %s", bus_error(&error, r)); + dbus_error_free(&error); - r = manager_start_scope(m->manager, m->scope, m->leader, SPECIAL_MACHINE_SLICE, description, &error, &job); - if (r < 0) { - log_error("Failed to start machine scope: %s", bus_error(&error, r)); - dbus_error_free(&error); - } else { - free(m->scope_job); - m->scope_job = job; + free(scope); + } else { + m->scope = scope; + + free(m->scope_job); + m->scope_job = job; + } } + if (m->scope) + hashmap_put(m->manager->machine_units, m->scope, m); + return r; }