From: Yu Watanabe Date: Tue, 9 Dec 2025 18:48:30 +0000 (+0900) Subject: bus-wait-for-jobs: use SYNTHETIC_ERRNO() X-Git-Tag: v259-rc3~5^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=473f427757c0b612d90d392fb32c6ef020c44845;p=thirdparty%2Fsystemd.git bus-wait-for-jobs: use SYNTHETIC_ERRNO() Since 0d91a204cb78d692f23e80d3a08f9b81ecad753a, we always logs something. Hence, we can use SYNTHETIC_ERRNO(). --- diff --git a/src/shared/bus-wait-for-jobs.c b/src/shared/bus-wait-for-jobs.c index fda64526a5d..dcbe7eaf0f7 100644 --- a/src/shared/bus-wait-for-jobs.c +++ b/src/shared/bus-wait-for-jobs.c @@ -247,26 +247,26 @@ static int check_wait_response(BusWaitForJobs *d, WaitJobsFlags flags, const cha int priority = FLAGS_SET(flags, BUS_WAIT_JOBS_LOG_ERROR) ? LOG_ERR : LOG_DEBUG; if (streq(d->result, "canceled")) - log_full(priority, "Job for %s canceled.", d->name); - else if (streq(d->result, "timeout")) - log_full(priority, "Job for %s timed out.", d->name); - else if (streq(d->result, "dependency")) - log_full(priority, "A dependency job for %s failed. See 'journalctl -xe' for details.", d->name); - else if (streq(d->result, "invalid")) - log_full(priority, "%s is not active, cannot reload.", d->name); - else if (streq(d->result, "assert")) - log_full(priority, "Assertion failed on job for %s.", d->name); - else if (streq(d->result, "unsupported")) - log_full(priority, "Operation on or unit type of %s not supported on this system.", d->name); - else if (streq(d->result, "collected")) - log_full(priority, "Queued job for %s was garbage collected.", d->name); - else if (streq(d->result, "once")) - log_full(priority, "Unit %s was started already once and can't be started again.", d->name); - else if (streq(d->result, "frozen")) - log_full(priority, "Cannot perform operation on frozen unit %s.", d->name); - else if (streq(d->result, "concurrency")) - log_full(priority, "Concurrency limit of a slice unit %s is contained in has been reached.", d->name); - else if (endswith(d->name, ".service")) { + return log_full_errno(priority, SYNTHETIC_ERRNO(ECANCELED), "Job for %s canceled.", d->name); + if (streq(d->result, "timeout")) + return log_full_errno(priority, SYNTHETIC_ERRNO(ETIME), "Job for %s timed out.", d->name); + if (streq(d->result, "dependency")) + return log_full_errno(priority, SYNTHETIC_ERRNO(EIO), "A dependency job for %s failed. See 'journalctl -xe' for details.", d->name); + if (streq(d->result, "invalid")) + return log_full_errno(priority, SYNTHETIC_ERRNO(ENOEXEC), "%s is not active, cannot reload.", d->name); + if (streq(d->result, "assert")) + return log_full_errno(priority, SYNTHETIC_ERRNO(EPROTO), "Assertion failed on job for %s.", d->name); + if (streq(d->result, "unsupported")) + return log_full_errno(priority, SYNTHETIC_ERRNO(EOPNOTSUPP), "Operation on or unit type of %s not supported on this system.", d->name); + if (streq(d->result, "collected")) + return log_full_errno(priority, SYNTHETIC_ERRNO(ECANCELED), "Queued job for %s was garbage collected.", d->name); + if (streq(d->result, "once")) + return log_full_errno(priority, SYNTHETIC_ERRNO(ESTALE), "Unit %s was started already once and can't be started again.", d->name); + if (streq(d->result, "frozen")) + return log_full_errno(priority, SYNTHETIC_ERRNO(EDEADLK), "Cannot perform operation on frozen unit %s.", d->name); + if (streq(d->result, "concurrency")) + return log_full_errno(priority, SYNTHETIC_ERRNO(ETOOMANYREFS), "Concurrency limit of a slice unit %s is contained in has been reached.", d->name); + if (endswith(d->name, ".service")) { /* Job result is unknown. For services, let's also try Result property. */ _cleanup_free_ char *result = NULL; @@ -282,25 +282,6 @@ static int check_wait_response(BusWaitForJobs *d, WaitJobsFlags flags, const cha } else /* Otherwise we just show a generic message. */ log_full(priority, "Job failed. See \"journalctl -xe\" for details."); - if (STR_IN_SET(d->result, "canceled", "collected")) - return -ECANCELED; - else if (streq(d->result, "timeout")) - return -ETIME; - else if (streq(d->result, "dependency")) - return -EIO; - else if (streq(d->result, "invalid")) - return -ENOEXEC; - else if (streq(d->result, "assert")) - return -EPROTO; - else if (streq(d->result, "unsupported")) - return -EOPNOTSUPP; - else if (streq(d->result, "once")) - return -ESTALE; - else if (streq(d->result, "frozen")) - return -EDEADLK; - else if (streq(d->result, "concurrency")) - return -ETOOMANYREFS; - return log_debug_errno(SYNTHETIC_ERRNO(ENOMEDIUM), "Unexpected job result '%s' for unit '%s', assuming server side newer than us.", d->result, d->name);