diff --git a/src/core/manager.c b/src/core/manager.c index 1e7dc3835..e75550bb4 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -2166,9 +2166,6 @@ int manager_serialize(Manager *m, FILE *f, FDSet *fds, bool switching_root) { if (u->id != t) continue; - if (!unit_can_serialize(u)) - continue; - /* Start marker */ fputs(u->id, f); fputc('\n', f); diff --git a/src/core/unit.c b/src/core/unit.c index 29782aa68..522696352 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -2293,12 +2293,11 @@ int unit_serialize(Unit *u, FILE *f, FDSet *fds, bool serialize_jobs) { assert(f); assert(fds); - if (!unit_can_serialize(u)) - return 0; - - r = UNIT_VTABLE(u)->serialize(u, f, fds); - if (r < 0) - return r; + if (unit_can_serialize(u)) { + r = UNIT_VTABLE(u)->serialize(u, f, fds); + if (r < 0) + return r; + } dual_timestamp_serialize(f, "inactive-exit-timestamp", &u->inactive_exit_timestamp); dual_timestamp_serialize(f, "active-enter-timestamp", &u->active_enter_timestamp); @@ -2365,9 +2364,6 @@ int unit_deserialize(Unit *u, FILE *f, FDSet *fds) { assert(f); assert(fds); - if (!unit_can_serialize(u)) - return 0; - for (;;) { char line[LINE_MAX], *l, *v; size_t k; @@ -2480,9 +2476,11 @@ int unit_deserialize(Unit *u, FILE *f, FDSet *fds) { continue; } - r = UNIT_VTABLE(u)->deserialize_item(u, l, v, fds); - if (r < 0) - return r; + if (unit_can_serialize(u)) { + r = UNIT_VTABLE(u)->deserialize_item(u, l, v, fds); + if (r < 0) + return r; + } } }