[systemd-commits] 2 commits - src/libsystemd src/udev src/update-done
Lennart Poettering
lennart at kemper.freedesktop.org
Fri Nov 28 07:32:46 PST 2014
src/libsystemd/sd-bus/bus-error.c | 4 ++-
src/udev/net/link-config.c | 13 +++++-------
src/udev/udev-event.c | 3 --
src/update-done/update-done.c | 40 ++++++++++++--------------------------
4 files changed, 23 insertions(+), 37 deletions(-)
New commits:
commit 755bde375f4db393ad06e73340bfcf4d0cf91bb2
Author: Lennart Poettering <lennart at poettering.net>
Date: Fri Nov 28 16:32:26 2014 +0100
udev,update-done: more log_xyz_errno() conversions
diff --git a/src/udev/net/link-config.c b/src/udev/net/link-config.c
index 7d1bdc9..5aac5bc 100644
--- a/src/udev/net/link-config.c
+++ b/src/udev/net/link-config.c
@@ -342,14 +342,14 @@ int link_config_apply(link_config_ctx *ctx, link_config *config,
r = ethtool_set_speed(&ctx->ethtool_fd, old_name, config->speed / 1024,
config->duplex);
if (r < 0)
- log_warning("Could not set speed or duplex of %s to %u Mbps (%s): %s",
- old_name, config->speed / 1024,
- duplex_to_string(config->duplex), strerror(-r));
+ log_warning_errno(r, "Could not set speed or duplex of %s to %u Mbps (%s): %m",
+ old_name, config->speed / 1024,
+ duplex_to_string(config->duplex));
r = ethtool_set_wol(&ctx->ethtool_fd, old_name, config->wol);
if (r < 0)
- log_warning("Could not set WakeOnLan of %s to %s: %s",
- old_name, wol_to_string(config->wol), strerror(-r));
+ log_warning_errno(r, "Could not set WakeOnLan of %s to %s: %m",
+ old_name, wol_to_string(config->wol));
ifindex = udev_device_get_ifindex(device);
if (ifindex <= 0) {
@@ -422,8 +422,7 @@ int link_config_apply(link_config_ctx *ctx, link_config *config,
r = rtnl_set_link_properties(&ctx->rtnl, ifindex, config->alias, mac,
config->mtu);
if (r < 0) {
- log_warning("Could not set Alias, MACAddress or MTU on %s: %s",
- old_name, strerror(-r));
+ log_warning_errno(r, "Could not set Alias, MACAddress or MTU on %s: %m", old_name);
return r;
}
diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c
index 7799a20..2917c32 100644
--- a/src/udev/udev-event.c
+++ b/src/udev/udev-event.c
@@ -776,8 +776,7 @@ static int rename_netif(struct udev_event *event) {
r = rtnl_set_link_name(&event->rtnl, udev_device_get_ifindex(dev), name);
if (r < 0) {
- log_error("error changing net interface name '%s' to '%s': %s",
- oldname, name, strerror(-r));
+ log_error_errno(r, "Error changing net interface name '%s' to '%s': %m", oldname, name);
return r;
}
diff --git a/src/update-done/update-done.c b/src/update-done/update-done.c
index 44d9df7..a910808 100644
--- a/src/update-done/update-done.c
+++ b/src/update-done/update-done.c
@@ -46,13 +46,10 @@ static int apply_timestamp(const char *path, struct timespec *ts) {
if (utimensat(AT_FDCWD, path, twice, AT_SYMLINK_NOFOLLOW) < 0) {
- if (errno == EROFS) {
- log_debug("Can't update timestamp file %s, file system is read-only.", path);
- return 0;
- }
+ if (errno == EROFS)
+ return log_debug("Can't update timestamp file %s, file system is read-only.", path);
- log_error("Failed to update timestamp on %s: %m", path);
- return -errno;
+ return log_error_errno(errno, "Failed to update timestamp on %s: %m", path);
}
} else if (errno == ENOENT) {
@@ -62,24 +59,17 @@ static int apply_timestamp(const char *path, struct timespec *ts) {
/* The timestamp file doesn't exist yet? Then let's create it. */
r = mac_selinux_create_file_prepare(path, S_IFREG);
- if (r < 0) {
- log_error("Failed to set SELinux context for %s: %s",
- path, strerror(-r));
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to set SELinux context for %s: %m", path);
fd = open(path, O_CREAT|O_EXCL|O_WRONLY|O_TRUNC|O_CLOEXEC|O_NOCTTY|O_NOFOLLOW, 0644);
mac_selinux_create_file_clear();
if (fd < 0) {
+ if (errno == EROFS)
+ return log_debug("Can't create timestamp file %s, file system is read-only.", path);
- if (errno == EROFS) {
- log_debug("Can't create timestamp file %s, file system is read-only.", path);
- return 0;
- }
-
- log_error("Failed to create timestamp file %s: %m", path);
- return -errno;
+ return log_error_errno(errno, "Failed to create timestamp file %s: %m", path);
}
(void) loop_write(fd, MESSAGE, strlen(MESSAGE), false);
@@ -87,14 +77,10 @@ static int apply_timestamp(const char *path, struct timespec *ts) {
twice[0] = *ts;
twice[1] = *ts;
- if (futimens(fd, twice) < 0) {
- log_error("Failed to update timestamp on %s: %m", path);
- return -errno;
- }
- } else {
- log_error("Failed to stat() timestamp file %s: %m", path);
- return -errno;
- }
+ if (futimens(fd, twice) < 0)
+ return log_error_errno(errno, "Failed to update timestamp on %s: %m", path);
+ } else
+ log_error_errno(errno, "Failed to stat() timestamp file %s: %m", path);
return 0;
}
@@ -108,7 +94,7 @@ int main(int argc, char *argv[]) {
log_open();
if (stat("/usr", &st) < 0) {
- log_error("Failed to stat /usr: %m");
+ log_error_errno(errno, "Failed to stat /usr: %m");
return EXIT_FAILURE;
}
commit 1797280193ea25a91cc38332c7cee34ba01e7808
Author: Lennart Poettering <lennart at poettering.net>
Date: Fri Nov 28 16:30:53 2014 +0100
sd-bus: make sure %m resolves to the specified error in bus_error_set_errnofv()
diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c
index cfb8d14..47f90c2 100644
--- a/src/libsystemd/sd-bus/bus-error.c
+++ b/src/libsystemd/sd-bus/bus-error.c
@@ -444,6 +444,7 @@ _public_ int sd_bus_error_set_errno(sd_bus_error *e, int error) {
}
int bus_error_set_errnofv(sd_bus_error *e, int error, const char *format, va_list ap) {
+ PROTECT_ERRNO;
int r;
if (error < 0)
@@ -477,8 +478,9 @@ int bus_error_set_errnofv(sd_bus_error *e, int error, const char *format, va_lis
if (format) {
char *m;
- /* First, let's try to fill in the supplied message */
+ /* Then, let's try to fill in the supplied message */
+ errno = error; /* Make sure that %m resolves to the specified error */
r = vasprintf(&m, format, ap);
if (r >= 0) {
More information about the systemd-commits
mailing list