]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core/varlink-manager: fix reload unit marker handling
authorMike Yuan <me@yhndnzj.com>
Fri, 16 Jan 2026 20:56:30 +0000 (21:56 +0100)
committerMike Yuan <me@yhndnzj.com>
Fri, 23 Jan 2026 23:48:02 +0000 (00:48 +0100)
If both restart and reload markers are set, the former takes
precedence.

src/core/varlink-manager.c

index 8f09205ddd8ebe594e7250c6dd73672410e56883..f1b6f8c0e6460a350b99b8fe0a5385d03260986c 100644 (file)
@@ -309,13 +309,14 @@ static int varlink_manager_queue_job_one(
                 Unit *u,
                 JobType type,
                 JobMode mode,
+                bool reload_if_possible,
                 uint32_t *ret_job_id) {
 
         int r;
 
         assert(u);
 
-        r = unit_queue_job_check_and_mangle_type(u, &type, /* reload_if_possible= */ BIT_SET(u->markers, UNIT_MARKER_NEEDS_RELOAD));
+        r = unit_queue_job_check_and_mangle_type(u, &type, reload_if_possible);
         if (r == -ENOENT)
                 return varlink_error_no_such_unit(link, "name");
         if (r == -ELIBEXEC)
@@ -386,6 +387,7 @@ int vl_method_enqueue_marked_jobs_manager(sd_varlink *link, sd_json_variant *par
                                         u,
                                         JOB_TRY_RESTART,
                                         JOB_FAIL,
+                                        /* reload_if_possible= */ !BIT_SET(u->markers, UNIT_MARKER_NEEDS_RESTART),
                                         &job_id);
                 if (ERRNO_IS_NEG_RESOURCE(r))
                         return r;