chiark / gitweb /
udevadm: info --export-db -- remove watch handle export
[elogind.git] / udev / udev-rules.c
index c4a2724032c8648195b607a6c9a03952a9c8f2de..6eb8350343c3f7c55391376b2d9c2c7f40190d23 100644 (file)
@@ -149,7 +149,6 @@ enum token_type {
        TK_A_STRING_ESCAPE_NONE,
        TK_A_STRING_ESCAPE_REPLACE,
        TK_A_INOTIFY_WATCH,             /* int */
-       TK_A_NUM_FAKE_PART,             /* int */
        TK_A_DEVLINK_PRIO,              /* int */
        TK_A_OWNER,                     /* val */
        TK_A_GROUP,                     /* val */
@@ -161,7 +160,6 @@ enum token_type {
        TK_A_NAME,                      /* val */
        TK_A_DEVLINK,                   /* val */
        TK_A_EVENT_TIMEOUT,             /* int */
-       TK_A_IGNORE_REMOVE,
        TK_A_ATTR,                      /* val, attr */
        TK_A_RUN,                       /* val, bool */
        TK_A_GOTO,                      /* size_t */
@@ -196,7 +194,6 @@ struct token {
                                mode_t  mode;
                                uid_t uid;
                                gid_t gid;
-                               int num_fake_part;
                                int devlink_prio;
                                int event_timeout;
                                int watch;
@@ -280,7 +277,6 @@ static const char *token_str(enum token_type type)
                [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",
-               [TK_A_NUM_FAKE_PART] =          "A NUM_FAKE_PART",
                [TK_A_DEVLINK_PRIO] =           "A DEVLINK_PRIO",
                [TK_A_OWNER] =                  "A OWNER",
                [TK_A_GROUP] =                  "A GROUP",
@@ -292,7 +288,6 @@ static const char *token_str(enum token_type type)
                [TK_A_NAME] =                   "A NAME",
                [TK_A_DEVLINK] =                "A DEVLINK",
                [TK_A_EVENT_TIMEOUT] =          "A EVENT_TIMEOUT",
-               [TK_A_IGNORE_REMOVE] =          "A IGNORE_REMOVE",
                [TK_A_ATTR] =                   "A ATTR",
                [TK_A_RUN] =                    "A RUN",
                [TK_A_GOTO] =                   "A GOTO",
@@ -361,7 +356,6 @@ static void dump_token(struct udev_rules *rules, struct token *token)
                break;
        case TK_A_STRING_ESCAPE_NONE:
        case TK_A_STRING_ESCAPE_REPLACE:
-       case TK_A_IGNORE_REMOVE:
                dbg(rules->udev, "%s\n", token_str(type));
                break;
        case TK_M_TEST:
@@ -371,9 +365,6 @@ static void dump_token(struct udev_rules *rules, struct token *token)
        case TK_A_INOTIFY_WATCH:
                dbg(rules->udev, "%s %u\n", token_str(type), token->key.watch);
                break;
-       case TK_A_NUM_FAKE_PART:
-               dbg(rules->udev, "%s %u\n", token_str(type), token->key.num_fake_part);
-               break;
        case TK_A_DEVLINK_PRIO:
                dbg(rules->udev, "%s %s %u\n", token_str(type), operation_str(op), token->key.devlink_prio);
                break;
@@ -1034,14 +1025,12 @@ static int rule_add_key(struct rule_tmp *rule_tmp, enum token_type type,
                break;
        case TK_A_STRING_ESCAPE_NONE:
        case TK_A_STRING_ESCAPE_REPLACE:
-       case TK_A_IGNORE_REMOVE:
                break;
        case TK_A_RUN:
                token->key.value_off = add_string(rule_tmp->rules, value);
                token->key.fail_on_error = *(int *)data;
                break;
        case TK_A_INOTIFY_WATCH:
-       case TK_A_NUM_FAKE_PART:
        case TK_A_DEVLINK_PRIO:
                token->key.devlink_prio = *(int *)data;
                break;
@@ -1467,19 +1456,6 @@ static int add_rule(struct udev_rules *rules, char *line,
                                        err(rules->udev, "NAME=\"%%k\" is superfluous and breaks "
                                            "kernel supplied names, please remove it from %s:%u\n", filename, lineno);
                                rule_add_key(&rule_tmp, TK_A_NAME, op, value, NULL);
-                               attr = get_key_attribute(rules->udev, key + sizeof("NAME")-1);
-                               if (attr != NULL) {
-                                       if (strstr(attr, "all_partitions") != NULL) {
-                                               int num = DEFAULT_FAKE_PARTITIONS_COUNT;
-
-                                               dbg(rules->udev, "creation of partition nodes requested\n");
-                                               rule_add_key(&rule_tmp, TK_A_NUM_FAKE_PART, 0, NULL, &num);
-                                       }
-                                       if (strstr(attr, "ignore_remove") != NULL) {
-                                               dbg(rules->udev, "remove event should be ignored\n");
-                                               rule_add_key(&rule_tmp, TK_A_IGNORE_REMOVE, 0, NULL, NULL);
-                                       }
-                               }
                        }
                        rule_tmp.rule.rule.flags = 1;
                        continue;
@@ -1550,10 +1526,6 @@ static int add_rule(struct udev_rules *rules, char *line,
                if (strcmp(key, "OPTIONS") == 0) {
                        const char *pos;
 
-                       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);
-                       }
                        pos = strstr(value, "link_priority=");
                        if (pos != NULL) {
                                int prio = atoi(&pos[strlen("link_priority=")]);
@@ -1576,12 +1548,6 @@ static int add_rule(struct udev_rules *rules, char *line,
                                else if (strncmp(pos, "replace", strlen("replace")) == 0)
                                        rule_add_key(&rule_tmp, TK_A_STRING_ESCAPE_REPLACE, 0, NULL, NULL);
                        }
-                       if (strstr(value, "all_partitions") != NULL) {
-                               int num = DEFAULT_FAKE_PARTITIONS_COUNT;
-
-                               rule_add_key(&rule_tmp, TK_A_NUM_FAKE_PART, 0, NULL, &num);
-                               dbg(rules->udev, "creation of partition nodes requested\n");
-                       }
                        pos = strstr(value, "nowatch");
                        if (pos != NULL) {
                                const int off = 0;
@@ -2055,13 +2021,12 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event
        struct token *cur;
        struct token *rule;
        enum escape_type esc = ESCAPE_UNSET;
-       int can_set_name;
+       bool can_set_name;
 
        if (rules->tokens == NULL)
                return -1;
 
-       can_set_name = ((strcmp(udev_device_get_action(event->dev), "add") == 0 ||
-                        strcmp(udev_device_get_action(event->dev), "change") == 0) &&
+       can_set_name = ((strcmp(udev_device_get_action(event->dev), "remove") != 0) &&
                        (major(udev_device_get_devnum(event->dev)) > 0 ||
                         strcmp(udev_device_get_subsystem(event->dev), "net") == 0));
 
@@ -2332,13 +2297,6 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event
                case TK_A_STRING_ESCAPE_REPLACE:
                        esc = ESCAPE_REPLACE;
                        break;
-               case TK_A_NUM_FAKE_PART:
-                       if (strcmp(udev_device_get_subsystem(event->dev), "block") != 0)
-                               break;
-                       if (udev_device_get_sysnum(event->dev) != NULL)
-                               break;
-                       udev_device_set_num_fake_partitions(event->dev, cur->key.num_fake_part);
-                       break;
                case TK_A_INOTIFY_WATCH:
                        event->inotify_watch = cur->key.watch;
                        break;
@@ -2525,9 +2483,6 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event
                case TK_A_EVENT_TIMEOUT:
                        udev_device_set_event_timeout(event->dev, cur->key.event_timeout);
                        break;
-               case TK_A_IGNORE_REMOVE:
-                       udev_device_set_ignore_remove(event->dev, 1);
-                       break;
                case TK_A_ATTR:
                        {
                                const char *key_name = &rules->buf[cur->key.attr_off];