diff --git a/src/basic/conf-files.c b/src/basic/conf-files.c index 2e65a6e74f..15a066da7f 100644 --- a/src/basic/conf-files.c +++ b/src/basic/conf-files.c @@ -349,7 +349,7 @@ int conf_files_cat(const char *root, const char *name) { assert(endswith(dir, "/")); r = strv_extendf(&dirs, "%s%s.d", dir, name); if (r < 0) - return log_error("Failed to build directory list: %m"); + return log_error_errno(r, "Failed to build directory list: %m"); } r = conf_files_list_strv(&files, ".conf", root, 0, (const char* const*) dirs); diff --git a/src/basic/fs-util.c b/src/basic/fs-util.c index 6146c66782..ab6ccf7c86 100644 --- a/src/basic/fs-util.c +++ b/src/basic/fs-util.c @@ -1155,9 +1155,9 @@ int fsync_directory_of_file(int fd) { r = fd_get_path(fd, &path); if (r < 0) { - log_debug("Failed to query /proc/self/fd/%d%s: %m", - fd, - r == -EOPNOTSUPP ? ", ignoring" : ""); + log_debug_errno(r, "Failed to query /proc/self/fd/%d%s: %m", + fd, + r == -EOPNOTSUPP ? ", ignoring" : ""); if (r == -EOPNOTSUPP) /* If /proc is not available, we're most likely running in some diff --git a/src/basic/selinux-util.c b/src/basic/selinux-util.c index aba3e4f15d..61504a673a 100644 --- a/src/basic/selinux-util.c +++ b/src/basic/selinux-util.c @@ -79,7 +79,7 @@ int mac_selinux_init(void) { label_hnd = selabel_open(SELABEL_CTX_FILE, NULL, 0); if (!label_hnd) { - log_enforcing("Failed to initialize SELinux context: %m"); + log_enforcing_errno(errno, "Failed to initialize SELinux context: %m"); r = security_getenforce() == 1 ? -errno : 0; } else { char timespan[FORMAT_TIMESPAN_MAX]; @@ -189,7 +189,7 @@ int mac_selinux_apply(const char *path, const char *label) { assert(label); if (setfilecon(path, label) < 0) { - log_enforcing("Failed to set SELinux security context %s on path %s: %m", label, path); + log_enforcing_errno(errno, "Failed to set SELinux security context %s on path %s: %m", label, path); if (security_getenforce() > 0) return -errno; } @@ -349,12 +349,12 @@ int mac_selinux_create_file_prepare(const char *path, mode_t mode) { if (errno == ENOENT) return 0; - log_enforcing("Failed to determine SELinux security context for %s: %m", path); + log_enforcing_errno(errno, "Failed to determine SELinux security context for %s: %m", path); } else { if (setfscreatecon_raw(filecon) >= 0) return 0; /* Success! */ - log_enforcing("Failed to set SELinux security context %s for %s: %m", filecon, path); + log_enforcing_errno(errno, "Failed to set SELinux security context %s for %s: %m", filecon, path); } if (security_getenforce() > 0) @@ -385,7 +385,7 @@ int mac_selinux_create_socket_prepare(const char *label) { assert(label); if (setsockcreatecon(label) < 0) { - log_enforcing("Failed to set SELinux security context %s for sockets: %m", label); + log_enforcing_errno(errno, "Failed to set SELinux security context %s for sockets: %m", label); if (security_getenforce() == 1) return -errno; @@ -457,13 +457,13 @@ int mac_selinux_bind(int fd, const struct sockaddr *addr, socklen_t addrlen) { if (errno == ENOENT) goto skipped; - log_enforcing("Failed to determine SELinux security context for %s: %m", path); + log_enforcing_errno(errno, "Failed to determine SELinux security context for %s: %m", path); if (security_getenforce() > 0) return -errno; } else { if (setfscreatecon_raw(fcon) < 0) { - log_enforcing("Failed to set SELinux security context %s for %s: %m", fcon, path); + log_enforcing_errno(errno, "Failed to set SELinux security context %s for %s: %m", fcon, path); if (security_getenforce() > 0) return -errno; } else diff --git a/src/core/automount.c b/src/core/automount.c index 3e848c8085..0aba87b778 100644 --- a/src/core/automount.c +++ b/src/core/automount.c @@ -177,7 +177,7 @@ static int automount_verify(Automount *a) { r = unit_name_from_path(a->where, ".automount", &e); if (r < 0) - return log_unit_error(UNIT(a), "Failed to generate unit name from path: %m"); + return log_unit_error_errno(UNIT(a), r, "Failed to generate unit name from path: %m"); if (!unit_has_name(UNIT(a), e)) { log_unit_error(UNIT(a), "Where= setting doesn't match unit name. Refusing."); diff --git a/src/core/service.c b/src/core/service.c index db0c1dc397..2d43779cfb 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -1947,7 +1947,7 @@ static void service_enter_start(Service *s) { /* There's no command line configured for the main command? Hmm, that is strange. This can only * happen if the configuration changes at runtime. In this case, let's enter a failure * state. */ - log_unit_error(UNIT(s), "There's no 'start' task anymore we could start: %m"); + log_unit_error(UNIT(s), "There's no 'start' task anymore we could start."); r = -ENXIO; goto fail; } diff --git a/src/journal/journald-stream.c b/src/journal/journald-stream.c index 93a0cc2288..4975aba016 100644 --- a/src/journal/journald-stream.c +++ b/src/journal/journald-stream.c @@ -766,8 +766,8 @@ int server_restore_streams(Server *s, FDSet *fds) { /* No file descriptor? Then let's delete the state file */ log_debug("Cannot restore stream file %s", de->d_name); if (unlinkat(dirfd(d), de->d_name, 0) < 0) - log_warning("Failed to remove /run/systemd/journal/streams/%s: %m", - de->d_name); + log_warning_errno(errno, "Failed to remove /run/systemd/journal/streams/%s: %m", + de->d_name); continue; } diff --git a/src/network/netdev/netdev.c b/src/network/netdev/netdev.c index a0b2697183..7ca570eee6 100644 --- a/src/network/netdev/netdev.c +++ b/src/network/netdev/netdev.c @@ -242,7 +242,7 @@ static int netdev_enslave_ready(NetDev *netdev, Link* link, sd_netlink_message_h r = sd_netlink_call_async(netdev->manager->rtnl, req, callback, link, 0, NULL); if (r < 0) - return log_netdev_error(netdev, "Could not send rtnetlink message: %m"); + return log_netdev_error_errno(netdev, r, "Could not send rtnetlink message: %m"); link_ref(link); diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index 5792ae9587..7f11d66062 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c @@ -2930,7 +2930,7 @@ static int outer_child( if (l < 0) return log_error_errno(errno, "Failed to send cgroup mode: %m"); if (l != sizeof(arg_unified_cgroup_hierarchy)) { - log_error("Short write while sending cgroup mode: %m"); + log_error("Short write while sending cgroup mode."); return -EIO; } diff --git a/src/shared/bus-unit-util.c b/src/shared/bus-unit-util.c index 539a7b4d9d..64b7ac8d69 100644 --- a/src/shared/bus-unit-util.c +++ b/src/shared/bus-unit-util.c @@ -1156,8 +1156,10 @@ static int bus_append_execute_property(sd_bus_message *m, const char *field, con r = extract_first_word(&w, &path, ":", EXTRACT_DONT_COALESCE_SEPARATORS); if (r < 0) return log_error_errno(r, "Failed to parse argument: %m"); - if (r == 0) - return log_error("Failed to parse argument: %m"); + if (r == 0) { + log_error("Failed to parse argument: %s", p); + return -EINVAL; + } r = sd_bus_message_append(m, "(ss)", path, w); if (r < 0) diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c index 4ad83b806b..b5ee07c9bd 100644 --- a/src/shared/conf-parser.c +++ b/src/shared/conf-parser.c @@ -303,8 +303,8 @@ int config_parse(const char *unit, /* Only log on request, except for ENOENT, * since we return 0 to the caller. */ if ((flags & CONFIG_PARSE_WARN) || errno == ENOENT) - log_full(errno == ENOENT ? LOG_DEBUG : LOG_ERR, - "Failed to open configuration file '%s': %m", filename); + log_full_errno(errno == ENOENT ? LOG_DEBUG : LOG_ERR, errno, + "Failed to open configuration file '%s': %m", filename); return errno == ENOENT ? 0 : -errno; } } diff --git a/src/shared/dropin.c b/src/shared/dropin.c index d9362f6919..0fc02914ac 100644 --- a/src/shared/dropin.c +++ b/src/shared/dropin.c @@ -210,7 +210,7 @@ static int unit_file_find_dirs( type = unit_name_to_type(name); if (type < 0) { - log_error("Failed to to derive unit type from unit name: %m"); + log_error("Failed to to derive unit type from unit name: %s", name); return -EINVAL; }