diff options
author | Kay Sievers <kay.sievers@vrfy.org> | 2009-11-16 15:22:17 +0100 |
---|---|---|
committer | Kay Sievers <kay.sievers@vrfy.org> | 2009-11-16 15:22:17 +0100 |
commit | cdae488a3fbca5a61b3f8ea0651730cfa2da9cb0 (patch) | |
tree | 26d3f5a0b0da338f367dfb643679e11f9d9be698 | |
parent | 5052297b6a8928d3ccfdd9996b71fdfff8bc8921 (diff) |
remove "ignore_device"
There is no way to ignore an event these days. Libudev events can
not be suppressed. It only prevents RUN keys from being executed,
which results in an inconsistent behavior in current setups.
-rw-r--r-- | NEWS | 9 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | udev/udev-event.c | 16 | ||||
-rw-r--r-- | udev/udev-rules.c | 13 | ||||
-rw-r--r-- | udev/udev.h | 1 | ||||
-rw-r--r-- | udev/udev.xml | 6 | ||||
-rw-r--r-- | udev/udevadm-test.c | 2 | ||||
-rw-r--r-- | udev/udevd.c | 2 |
8 files changed, 12 insertions, 39 deletions
@@ -1,3 +1,12 @@ +udev 148 +======== +Bugfixes. + +The option "ignore_device" does no longer exist. There is no way to +ignore an event, as libudev events can not be suppressed by rules. +It only prevented RUN keys from being executed, which results in an +inconsistent behavior in current setups. + udev 147 ======== Bugfixes. diff --git a/configure.ac b/configure.ac index 3cb2299ce1..12271f1461 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT([udev], [147], [linux-hotplug@vger.kernel.org]) +AC_INIT([udev], [148], [linux-hotplug@vger.kernel.org]) AC_PREREQ(2.60) AM_INIT_AUTOMAKE([check-news foreign 1.9 dist-bzip2 subdir-objects]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) diff --git a/udev/udev-event.c b/udev/udev-event.c index d5b4d0941e..4e1773ffea 100644 --- a/udev/udev-event.c +++ b/udev/udev-event.c @@ -568,12 +568,6 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules) event->tmp_node = NULL; } - if (event->ignore_device) { - info(event->udev, "device event will be ignored\n"); - delete_kdevnode = 1; - goto exit_add; - } - if (event->name != NULL && event->name[0] == '\0') { info(event->udev, "device node creation suppressed\n"); delete_kdevnode = 1; @@ -638,10 +632,6 @@ exit_add: udev_device_delete_db(dev); udev_rules_apply_to_event(rules, event); - if (event->ignore_device) { - info(event->udev, "device event will be ignored\n"); - goto exit; - } if (event->name == NULL) goto exit; @@ -694,10 +684,6 @@ exit_add: } udev_rules_apply_to_event(rules, event); - if (event->ignore_device) { - info(event->udev, "device event will be ignored\n"); - goto exit; - } if (udev_device_get_ignore_remove(dev)) { info(event->udev, "ignore_remove for '%s'\n", udev_device_get_devnode(dev)); @@ -710,8 +696,6 @@ exit_add: /* default devices */ udev_rules_apply_to_event(rules, event); - if (event->ignore_device) - info(event->udev, "device event will be ignored\n"); if (strcmp(udev_device_get_action(dev), "remove") != 0) udev_device_update_db(dev); diff --git a/udev/udev-rules.c b/udev/udev-rules.c index 092ddcdc25..07cb4a7fbf 100644 --- a/udev/udev-rules.c +++ b/udev/udev-rules.c @@ -144,7 +144,6 @@ enum token_type { TK_M_RESULT, /* val */ TK_M_MAX, - TK_A_IGNORE_DEVICE, TK_A_STRING_ESCAPE_NONE, TK_A_STRING_ESCAPE_REPLACE, TK_A_INOTIFY_WATCH, /* int */ @@ -275,7 +274,6 @@ static const char *token_str(enum token_type type) [TK_M_RESULT] = "M RESULT", [TK_M_MAX] = "M MAX", - [TK_A_IGNORE_DEVICE] = "A IGNORE_DEVICE", [TK_A_STRING_ESCAPE_NONE] = "A STRING_ESCAPE_NONE", [TK_A_STRING_ESCAPE_REPLACE] = "A STRING_ESCAPE_REPLACE", [TK_A_INOTIFY_WATCH] = "A INOTIFY_WATCH", @@ -357,7 +355,6 @@ static void dump_token(struct udev_rules *rules, struct token *token) dbg(rules->udev, "%s %s '%s' '%s'(%s)\n", token_str(type), operation_str(op), attr, value, string_glob_str(glob)); break; - case TK_A_IGNORE_DEVICE: case TK_A_STRING_ESCAPE_NONE: case TK_A_STRING_ESCAPE_REPLACE: case TK_A_IGNORE_REMOVE: @@ -1030,7 +1027,6 @@ static int rule_add_key(struct rule_tmp *rule_tmp, enum token_type type, if (data != NULL) token->key.mode = *(mode_t *)data; break; - case TK_A_IGNORE_DEVICE: case TK_A_STRING_ESCAPE_NONE: case TK_A_STRING_ESCAPE_REPLACE: case TK_A_IGNORE_REMOVE: @@ -1496,10 +1492,6 @@ static int add_rule(struct udev_rules *rules, char *line, if (strcmp(key, "OPTIONS") == 0) { const char *pos; - if (strstr(value, "ignore_device") != NULL) { - dbg(rules->udev, "device should be ignored\n"); - rule_add_key(&rule_tmp, TK_A_IGNORE_DEVICE, 0, NULL, NULL); - } if (strstr(value, "ignore_remove") != NULL) { dbg(rules->udev, "remove event should be ignored\n"); rule_add_key(&rule_tmp, TK_A_IGNORE_REMOVE, 0, NULL, NULL); @@ -2259,11 +2251,6 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event if (match_key(rules, cur, event->program_result) != 0) goto nomatch; break; - - case TK_A_IGNORE_DEVICE: - event->ignore_device = 1; - return 0; - break; case TK_A_STRING_ESCAPE_NONE: esc = ESCAPE_NONE; break; diff --git a/udev/udev.h b/udev/udev.h index 8f0a3014b6..555eae6311 100644 --- a/udev/udev.h +++ b/udev/udev.h @@ -48,7 +48,6 @@ struct udev_event { unsigned int name_final:1; unsigned int devlink_final:1; unsigned int run_final:1; - unsigned int ignore_device:1; unsigned int inotify_watch:1; }; diff --git a/udev/udev.xml b/udev/udev.xml index 41941c820f..ff01fefe58 100644 --- a/udev/udev.xml +++ b/udev/udev.xml @@ -420,12 +420,6 @@ <para>Rule and device options:</para> <variablelist> <varlistentry> - <term><option>ignore_device</option></term> - <listitem> - <para>Ignore this event completely.</para> - </listitem> - </varlistentry> - <varlistentry> <term><option>ignore_remove</option></term> <listitem> <para>Do not remove the device node when the device goes away. This may be diff --git a/udev/udevadm-test.c b/udev/udevadm-test.c index 6c5710380e..5dd515bcdc 100644 --- a/udev/udevadm-test.c +++ b/udev/udevadm-test.c @@ -119,7 +119,7 @@ int udevadm_test(struct udev *udev, int argc, char *argv[]) udev_list_entry_foreach(entry, udev_device_get_properties_list_entry(dev)) info(udev, "%s=%s\n", udev_list_entry_get_name(entry), udev_list_entry_get_value(entry)); - if (err == 0 && !event->ignore_device && udev_get_run(udev)) { + if (err == 0 && udev_get_run(udev)) { udev_list_entry_foreach(entry, udev_list_get_entry(&event->run_list)) { char program[UTIL_PATH_SIZE]; diff --git a/udev/udevd.c b/udev/udevd.c index 72f9b180d3..300d603519 100644 --- a/udev/udevd.c +++ b/udev/udevd.c @@ -293,7 +293,7 @@ static void worker_new(struct event *event) alarm(udev_device_get_event_timeout(dev)); /* execute RUN= */ - if (err == 0 && !udev_event->ignore_device && udev_get_run(udev_event->udev)) + if (err == 0 && udev_get_run(udev_event->udev)) failed = udev_event_execute_run(udev_event, &orig_sigmask); |