summaryrefslogtreecommitdiff
path: root/src/snapshot.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2011-05-05 10:58:55 +0200
committerLennart Poettering <lennart@poettering.net>2011-05-05 10:58:55 +0200
commit7a6000a68241d23c9f6f6bde47b2cfa9c18189da (patch)
tree76fb3e89d3fa2caf4425e987197d2371563c1b1d /src/snapshot.c
parenta96257af783f1d2c35a957466856e62ebf82bcad (diff)
unit: make ignoring in snapshots a per unit property, instead of a per unit type property
Diffstat (limited to 'src/snapshot.c')
-rw-r--r--src/snapshot.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/snapshot.c b/src/snapshot.c
index 7cde25d4f6..9825f90521 100644
--- a/src/snapshot.c
+++ b/src/snapshot.c
@@ -32,6 +32,16 @@ static const UnitActiveState state_translation_table[_SNAPSHOT_STATE_MAX] = {
[SNAPSHOT_ACTIVE] = UNIT_ACTIVE
};
+static void snapshot_init(Unit *u) {
+ Snapshot *s = SNAPSHOT(u);
+
+ assert(s);
+ assert(s->meta.load_state == UNIT_STUB);
+
+ s->meta.ignore_on_isolate = true;
+ s->meta.ignore_on_snapshot = true;
+}
+
static void snapshot_set_state(Snapshot *s, SnapshotState state) {
SnapshotState old_state;
assert(s);
@@ -228,7 +238,7 @@ int snapshot_create(Manager *m, const char *name, bool cleanup, DBusError *e, Sn
HASHMAP_FOREACH_KEY(other, k, m->units, i) {
- if (UNIT_VTABLE(other)->no_snapshots)
+ if (other->meta.ignore_on_snapshot)
continue;
if (k != other->meta.id)
@@ -275,9 +285,10 @@ const UnitVTable snapshot_vtable = {
.no_alias = true,
.no_instances = true,
- .no_snapshots = true,
.no_gc = true,
+ .init = snapshot_init,
+
.load = snapshot_load,
.coldplug = snapshot_coldplug,