chiark / gitweb /
list: make our list macros a bit easier to use by not requring type spec on each...
[elogind.git] / src / machine / machine.c
index f33ad54db84b01e28d8e674a62d2a81f3130a052..f78b0cf8fdc97c568cb4adeb8a5777f024839d17 100644 (file)
@@ -73,7 +73,7 @@ void machine_free(Machine *m) {
         assert(m);
 
         if (m->in_gc_queue)
-                LIST_REMOVE(Machine, gc_queue, m->manager->machine_gc_queue, m);
+                LIST_REMOVE(gc_queue, m->manager->machine_gc_queue, m);
 
         if (m->scope) {
                 hashmap_remove(m->manager->machine_units, m->scope);
@@ -217,11 +217,11 @@ int machine_load(Machine *m) {
         return r;
 }
 
-static int machine_start_scope(Machine *m) {
+static int machine_start_scope(Machine *m, DBusMessageIter *iter) {
         _cleanup_free_ char *description = NULL;
         DBusError error;
         char *job;
-        int r;
+        int r = 0;
 
         assert(m);
 
@@ -241,12 +241,13 @@ static int machine_start_scope(Machine *m) {
 
                 description = strappend(m->class == MACHINE_VM ? "Virtual Machine " : "Container ", m->name);
 
-                r = manager_start_scope(m->manager, scope, m->leader, SPECIAL_MACHINE_SLICE, description, &error, &job);
+                r = manager_start_scope(m->manager, scope, m->leader, SPECIAL_MACHINE_SLICE, description, iter, &error, &job);
                 if (r < 0) {
                         log_error("Failed to start machine scope: %s", bus_error(&error, r));
                         dbus_error_free(&error);
 
                         free(scope);
+                        return r;
                 } else {
                         m->scope = scope;
 
@@ -261,7 +262,7 @@ static int machine_start_scope(Machine *m) {
         return r;
 }
 
-int machine_start(Machine *m) {
+int machine_start(Machine *m, DBusMessageIter *iter) {
         int r;
 
         assert(m);
@@ -270,7 +271,7 @@ int machine_start(Machine *m) {
                 return 0;
 
         /* Create cgroup */
-        r = machine_start_scope(m);
+        r = machine_start_scope(m, iter);
         if (r < 0)
                 return r;
 
@@ -368,7 +369,7 @@ void machine_add_to_gc_queue(Machine *m) {
         if (m->in_gc_queue)
                 return;
 
-        LIST_PREPEND(Machine, gc_queue, m->manager->machine_gc_queue, m);
+        LIST_PREPEND(gc_queue, m->manager->machine_gc_queue, m);
         m->in_gc_queue = true;
 }