Blob Blame History Raw
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);
                         }