From d0174817bfe323090264edaa3ef1826c20a67d95 Mon Sep 17 00:00:00 2001 From: Kay Sievers 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 676669ba8..c59aab11a 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 3aa3274bf..461082357 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 7c6c5d6a8..5235cbd2c 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); }