]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core/service: add missing serialization for Service.live_mount_result
authorMike Yuan <me@yhndnzj.com>
Wed, 16 Oct 2024 19:19:43 +0000 (21:19 +0200)
committerMike Yuan <me@yhndnzj.com>
Tue, 22 Oct 2024 17:51:01 +0000 (19:51 +0200)
src/core/service.c

index c7683090ef5c80381b7d74fab6fb92e158d28e43..5930fade06831ea58e480900125399d5ba36e668 100644 (file)
@@ -3088,6 +3088,7 @@ static int service_serialize(Unit *u, FILE *f, FDSet *fds) {
         (void) serialize_item(f, "state", service_state_to_string(s->state));
         (void) serialize_item(f, "result", service_result_to_string(s->result));
         (void) serialize_item(f, "reload-result", service_result_to_string(s->reload_result));
+        (void) serialize_item(f, "live-mount-result", service_result_to_string(s->live_mount_result));
 
         (void) serialize_pidref(f, fds, "control-pid", &s->control_pid);
         if (s->main_pid_known)
@@ -3316,7 +3317,7 @@ static int service_deserialize_item(Unit *u, const char *key, const char *value,
 
                 state = service_state_from_string(value);
                 if (state < 0)
-                        log_unit_debug(u, "Failed to parse state value: %s", value);
+                        log_unit_debug_errno(u, state, "Failed to parse state value: %s", value);
                 else
                         s->deserialized_state = state;
         } else if (streq(key, "result")) {
@@ -3324,7 +3325,7 @@ static int service_deserialize_item(Unit *u, const char *key, const char *value,
 
                 f = service_result_from_string(value);
                 if (f < 0)
-                        log_unit_debug(u, "Failed to parse result value: %s", value);
+                        log_unit_debug_errno(u, f, "Failed to parse result value: %s", value);
                 else if (f != SERVICE_SUCCESS)
                         s->result = f;
 
@@ -3333,10 +3334,19 @@ static int service_deserialize_item(Unit *u, const char *key, const char *value,
 
                 f = service_result_from_string(value);
                 if (f < 0)
-                        log_unit_debug(u, "Failed to parse reload result value: %s", value);
+                        log_unit_debug_errno(u, f, "Failed to parse reload result value: %s", value);
                 else if (f != SERVICE_SUCCESS)
                         s->reload_result = f;
 
+        } else if (streq(key, "live-mount-result")) {
+                ServiceResult f;
+
+                f = service_result_from_string(value);
+                if (f < 0)
+                        log_unit_debug_errno(u, f, "Failed to parse live mount result value: %s", value);
+                else if (f != SERVICE_SUCCESS)
+                        s->live_mount_result = f;
+
         } else if (streq(key, "control-pid")) {
 
                 if (!pidref_is_set(&s->control_pid))