chiark / gitweb /
systemctl: fix 'systemctl enable getty@.service'
[elogind.git] / src / snapshot.c
index fe8a43d..a23f2db 100644 (file)
@@ -1,4 +1,4 @@
-/*-*- Mode: C; c-basic-offset: 8 -*-*/
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
 
 /***
   This file is part of systemd.
@@ -56,7 +56,7 @@ static int snapshot_load(Unit *u) {
 
         /* Make sure that only snapshots created via snapshot_create()
          * can be loaded */
-        if (!s->by_snapshot_create)
+        if (!s->by_snapshot_create && s->meta.manager->n_deserializing <= 0)
                 return -ENOENT;
 
         u->meta.load_state = UNIT_LOADED;
@@ -186,7 +186,7 @@ int snapshot_create(Manager *m, const char *name, bool cleanup, DBusError *e, Sn
         assert(_s);
 
         if (name) {
-                if (!unit_name_is_valid(name)) {
+                if (!unit_name_is_valid(name, false)) {
                         dbus_set_error(e, BUS_ERROR_INVALID_NAME, "Unit name %s is not valid.", name);
                         return -EINVAL;
                 }
@@ -292,5 +292,6 @@ const UnitVTable snapshot_vtable = {
         .active_state = snapshot_active_state,
         .sub_state_to_string = snapshot_sub_state_to_string,
 
+        .bus_interface = "org.freedesktop.systemd1.Snapshot",
         .bus_message_handler = bus_snapshot_message_handler
 };