From d0174817bfe323090264edaa3ef1826c20a67d95 Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay@vrfy.org>
Date: Wed, 14 May 2014 00:34:49 +0200
Subject: [PATCH] udev: do not skip the execution of RUN when renaming a
network device fails
(cherry picked from commit 1ea972174baba40dbc80c51cbfc4edc49764b59b)
(cherry picked from commit 59c91436bbadecec9f49dba82735ea1347316c70)
---
src/test/test-udev.c | 3 +--
src/udev/udevadm-test.c | 13 +++++--------
src/udev/udevd.c | 7 +++----
3 files changed, 9 insertions(+), 14 deletions(-)
diff --git a/src/test/test-udev.c b/src/test/test-udev.c
index 676669ba88..c59aab11a6 100644
--- a/src/test/test-udev.c
+++ b/src/test/test-udev.c
@@ -157,8 +157,7 @@ int main(int argc, char *argv[])
}
err = udev_event_execute_rules(event, rules, &sigmask_orig);
- if (err == 0)
- udev_event_execute_run(event, NULL);
+ udev_event_execute_run(event, NULL);
out:
if (event != NULL && event->fd_signal >= 0)
close(event->fd_signal);
diff --git a/src/udev/udevadm-test.c b/src/udev/udevadm-test.c
index 3aa3274bfc..461082357f 100644
--- a/src/udev/udevadm-test.c
+++ b/src/udev/udevadm-test.c
@@ -42,7 +42,6 @@ static int adm_test(struct udev *udev, int argc, char *argv[])
struct udev_rules *rules = NULL;
struct udev_list_entry *entry;
sigset_t mask, sigmask_orig;
- int err;
int rc = 0;
static const struct option options[] = {
@@ -141,18 +140,16 @@ static int adm_test(struct udev *udev, int argc, char *argv[])
goto out;
}
- err = udev_event_execute_rules(event, rules, &sigmask_orig);
+ udev_event_execute_rules(event, rules, &sigmask_orig);
udev_list_entry_foreach(entry, udev_device_get_properties_list_entry(dev))
printf("%s=%s\n", udev_list_entry_get_name(entry), udev_list_entry_get_value(entry));
- if (err == 0) {
- udev_list_entry_foreach(entry, udev_list_get_entry(&event->run_list)) {
- char program[UTIL_PATH_SIZE];
+ udev_list_entry_foreach(entry, udev_list_get_entry(&event->run_list)) {
+ char program[UTIL_PATH_SIZE];
- udev_event_apply_format(event, udev_list_entry_get_name(entry), program, sizeof(program));
- printf("run: '%s'\n", program);
- }
+ udev_event_apply_format(event, udev_list_entry_get_name(entry), program, sizeof(program));
+ printf("run: '%s'\n", program);
}
out:
if (event != NULL && event->fd_signal >= 0)
diff --git a/src/udev/udevd.c b/src/udev/udevd.c
index 7c6c5d6a87..5235cbd2ca 100644
--- a/src/udev/udevd.c
+++ b/src/udev/udevd.c
@@ -288,13 +288,12 @@ static void worker_new(struct event *event)
udev_event->exec_delay = exec_delay;
/* apply rules, create node, symlinks */
- err = udev_event_execute_rules(udev_event, rules, &sigmask_orig);
+ udev_event_execute_rules(udev_event, rules, &sigmask_orig);
- if (err == 0)
- udev_event_execute_run(udev_event, &sigmask_orig);
+ udev_event_execute_run(udev_event, &sigmask_orig);
/* apply/restore inotify watch */
- if (err == 0 && udev_event->inotify_watch) {
+ if (udev_event->inotify_watch) {
udev_watch_begin(udev, dev);
udev_device_update_db(dev);
}