X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flogin%2Flogind-dbus.c;h=7b9bd201b24c9902cc357202e53377c2bd138f09;hp=39af637d1b03d0996f562d5848292786f37e019d;hb=76e665855edef5b7103cb09d114377d477bfae02;hpb=7fb3ee51c1b37738fd0ea2c81dfd6c336144698a diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c index 39af637d1..7b9bd201b 100644 --- a/src/login/logind-dbus.c +++ b/src/login/logind-dbus.c @@ -643,6 +643,10 @@ static int bus_manager_create_session(Manager *m, DBusMessage *message) { session->create_message = dbus_message_ref(message); + /* Now, let's wait until the slice unit and stuff got + * created. We send the reply back from + * session_send_create_reply().*/ + return 0; fail: @@ -2356,7 +2360,6 @@ DBusHandlerResult bus_message_filter( if (streq_ptr(path, s->scope_job)) { free(s->scope_job); s->scope_job = NULL; - session_save(s); if (s->started) { if (streq(result, "done")) @@ -2365,7 +2368,8 @@ DBusHandlerResult bus_message_filter( dbus_set_error(&error, BUS_ERROR_JOB_FAILED, "Start job for unit %s failed with '%s'", unit, result); session_send_create_reply(s, &error); } - } + } else + session_save(s); } session_add_to_gc_queue(s);