chiark / gitweb /
udev: do not skip the execution of RUN when renaming a network device fails
authorKay Sievers <kay@vrfy.org>
Tue, 13 May 2014 22:34:49 +0000 (00:34 +0200)
committerKay Sievers <kay@vrfy.org>
Thu, 15 May 2014 08:32:26 +0000 (10:32 +0200)
src/test/test-udev.c
src/udev/udev-event.c
src/udev/udev.h
src/udev/udevadm-test.c
src/udev/udevd.c

index b0647441f0bc7e3ced12266eeece6ef7c193495e..b057cc8c0f98fa4eb05c9357127cbd85734d2ecc 100644 (file)
@@ -155,9 +155,8 @@ 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_rules(event, rules, &sigmask_orig);
+        udev_event_execute_run(event, NULL);
 out:
         if (event != NULL && event->fd_signal >= 0)
                 close(event->fd_signal);
index 2cab42bbc692ac0193234df4d7c48edea8e66609..5213a4abaa939b77ef559db847ba989d82a19f4d 100644 (file)
@@ -776,13 +776,12 @@ static int rename_netif(struct udev_event *event)
         return r;
 }
 
-int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigmask)
+void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigmask)
 {
         struct udev_device *dev = event->dev;
-        int err = 0;
 
         if (udev_device_get_subsystem(dev) == NULL)
-                return -1;
+                return;
 
         if (streq(udev_device_get_action(dev), "remove")) {
                 udev_device_read_db(dev, NULL);
@@ -816,9 +815,10 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules,
                     event->name != NULL && !streq(event->name, udev_device_get_sysname(dev))) {
                         char syspath[UTIL_PATH_SIZE];
                         char *pos;
+                        int r;
 
-                        err = rename_netif(event);
-                        if (err == 0) {
+                        r = rename_netif(event);
+                        if (r >= 0) {
                                 log_debug("renamed netif to '%s'", event->name);
 
                                 /* remember old name */
@@ -881,7 +881,6 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules,
                 udev_device_unref(event->dev_db);
                 event->dev_db = NULL;
         }
-        return err;
 }
 
 void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask)
index 936adfbf5efce4bd2243a50bf97e785fff906ba6..62538bcb8df270fdaa4200d8638bdb90d2c74c4d 100644 (file)
@@ -84,7 +84,7 @@ int udev_event_apply_subsys_kernel(struct udev_event *event, const char *string,
 int udev_event_spawn(struct udev_event *event,
                      const char *cmd, char **envp, const sigset_t *sigmask,
                      char *result, size_t ressize);
-int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigset);
+void udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigset);
 void udev_event_execute_run(struct udev_event *event, const sigset_t *sigset);
 int udev_build_argv(struct udev *udev, char *cmd, int *argc, char *argv[]);
 
index 6cd311b27db4ca559ceb14da3068abd359013107..6a2f5489feb5a5e384e8ee76e1c896c5c2b87ef0 100644 (file)
@@ -43,7 +43,6 @@ static int adm_test(struct udev *udev, int argc, char *argv[])
         _cleanup_udev_device_unref_ struct udev_device *dev = NULL;
         _cleanup_udev_event_unref_ struct udev_event *event = NULL;
         sigset_t mask, sigmask_orig;
-        int err;
         int rc = 0, c;
 
         static const struct option options[] = {
@@ -139,18 +138,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)
index aecd208d40cd99f46a07a5d10d4faa52645d313d..bc0696c0ee0447ed4ce0e7faf077f082752e5e62 100644 (file)
@@ -307,10 +307,9 @@ static void worker_new(struct event *event)
                         }
 
                         /* 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) {