mirror of
https://github.com/systemd/systemd
synced 2024-07-21 10:17:21 +00:00
udev: remove SYMLINK "unique" option
This commit is contained in:
parent
04eaa66837
commit
8a1733871f
|
@ -378,12 +378,12 @@ void udev_device_add_property_from_string_parse(struct udev_device *udev_device,
|
|||
next = strchr(slink, ' ');
|
||||
while (next != NULL) {
|
||||
next[0] = '\0';
|
||||
udev_device_add_devlink(udev_device, slink, 0);
|
||||
udev_device_add_devlink(udev_device, slink);
|
||||
slink = &next[1];
|
||||
next = strchr(slink, ' ');
|
||||
}
|
||||
if (slink[0] != '\0')
|
||||
udev_device_add_devlink(udev_device, slink, 0);
|
||||
udev_device_add_devlink(udev_device, slink);
|
||||
} else if (startswith(property, "TAGS=")) {
|
||||
char tags[UTIL_PATH_SIZE];
|
||||
char *next;
|
||||
|
@ -503,7 +503,7 @@ int udev_device_read_db(struct udev_device *udev_device, const char *dbfile)
|
|||
switch(line[0]) {
|
||||
case 'S':
|
||||
util_strscpyl(filename, sizeof(filename), "/dev/", val, NULL);
|
||||
udev_device_add_devlink(udev_device, filename, 0);
|
||||
udev_device_add_devlink(udev_device, filename);
|
||||
break;
|
||||
case 'L':
|
||||
udev_device_set_devlink_priority(udev_device, atoi(val));
|
||||
|
@ -1505,7 +1505,7 @@ int udev_device_set_devnode(struct udev_device *udev_device, const char *devnode
|
|||
return 0;
|
||||
}
|
||||
|
||||
int udev_device_add_devlink(struct udev_device *udev_device, const char *devlink, int unique)
|
||||
int udev_device_add_devlink(struct udev_device *udev_device, const char *devlink)
|
||||
{
|
||||
struct udev_list_entry *list_entry;
|
||||
|
||||
|
@ -1513,8 +1513,6 @@ int udev_device_add_devlink(struct udev_device *udev_device, const char *devlink
|
|||
list_entry = udev_list_entry_add(&udev_device->devlinks_list, devlink, NULL);
|
||||
if (list_entry == NULL)
|
||||
return -ENOMEM;
|
||||
if (unique)
|
||||
udev_list_entry_set_num(list_entry, true);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ struct udev_device *udev_device_new(struct udev *udev);
|
|||
mode_t udev_device_get_devnode_mode(struct udev_device *udev_device);
|
||||
int udev_device_set_syspath(struct udev_device *udev_device, const char *syspath);
|
||||
int udev_device_set_devnode(struct udev_device *udev_device, const char *devnode);
|
||||
int udev_device_add_devlink(struct udev_device *udev_device, const char *devlink, int unique);
|
||||
int udev_device_add_devlink(struct udev_device *udev_device, const char *devlink);
|
||||
void udev_device_cleanup_devlinks_list(struct udev_device *udev_device);
|
||||
struct udev_list_entry *udev_device_add_property(struct udev_device *udev_device, const char *key, const char *value);
|
||||
void udev_device_add_property_from_string_parse(struct udev_device *udev_device, const char *property);
|
||||
|
|
|
@ -250,7 +250,7 @@ void udev_node_update_old_links(struct udev_device *dev, struct udev_device *dev
|
|||
|
||||
log_debug("update old name, '%s' no longer belonging to '%s'\n",
|
||||
name, udev_device_get_devpath(dev));
|
||||
link_update(dev, name, 0);
|
||||
link_update(dev, name, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -321,13 +321,8 @@ void udev_node_add(struct udev_device *dev, mode_t mode, uid_t uid, gid_t gid)
|
|||
node_symlink(udev, udev_device_get_devnode(dev), filename);
|
||||
|
||||
/* create/update symlinks, add symlinks to name index */
|
||||
udev_list_entry_foreach(list_entry, udev_device_get_devlinks_list_entry(dev)) {
|
||||
if (udev_list_entry_get_num(list_entry))
|
||||
/* simple unmanaged link name */
|
||||
node_symlink(udev, udev_device_get_devnode(dev), udev_list_entry_get_name(list_entry));
|
||||
else
|
||||
link_update(dev, udev_list_entry_get_name(list_entry), 1);
|
||||
}
|
||||
udev_list_entry_foreach(list_entry, udev_device_get_devlinks_list_entry(dev))
|
||||
link_update(dev, udev_list_entry_get_name(list_entry), true);
|
||||
}
|
||||
|
||||
void udev_node_remove(struct udev_device *dev)
|
||||
|
@ -337,7 +332,7 @@ void udev_node_remove(struct udev_device *dev)
|
|||
|
||||
/* remove/update symlinks, remove symlinks from name index */
|
||||
udev_list_entry_foreach(list_entry, udev_device_get_devlinks_list_entry(dev))
|
||||
link_update(dev, udev_list_entry_get_name(list_entry), 0);
|
||||
link_update(dev, udev_list_entry_get_name(list_entry), false);
|
||||
|
||||
/* remove /dev/{block,char}/$major:$minor */
|
||||
snprintf(filename, sizeof(filename), "/dev/%s/%u:%u",
|
||||
|
|
|
@ -202,7 +202,6 @@ struct token {
|
|||
unsigned int value_off;
|
||||
union {
|
||||
unsigned int attr_off;
|
||||
int devlink_unique;
|
||||
unsigned int rule_goto;
|
||||
mode_t mode;
|
||||
uid_t uid;
|
||||
|
@ -1020,6 +1019,7 @@ static int rule_add_key(struct rule_tmp *rule_tmp, enum token_type type,
|
|||
case TK_A_OWNER:
|
||||
case TK_A_GROUP:
|
||||
case TK_A_MODE:
|
||||
case TK_A_DEVLINK:
|
||||
case TK_A_NAME:
|
||||
case TK_A_GOTO:
|
||||
case TK_M_TAG:
|
||||
|
@ -1039,10 +1039,6 @@ static int rule_add_key(struct rule_tmp *rule_tmp, enum token_type type,
|
|||
token->key.value_off = add_string(rule_tmp->rules, value);
|
||||
token->key.attr_off = add_string(rule_tmp->rules, attr);
|
||||
break;
|
||||
case TK_A_DEVLINK:
|
||||
token->key.value_off = add_string(rule_tmp->rules, value);
|
||||
token->key.devlink_unique = *(int *)data;
|
||||
break;
|
||||
case TK_M_TEST:
|
||||
token->key.value_off = add_string(rule_tmp->rules, value);
|
||||
if (data != NULL)
|
||||
|
@ -1496,17 +1492,11 @@ static int add_rule(struct udev_rules *rules, char *line,
|
|||
continue;
|
||||
}
|
||||
|
||||
if (startswith(key, "SYMLINK")) {
|
||||
if (op < OP_MATCH_MAX) {
|
||||
if (streq(key, "SYMLINK")) {
|
||||
if (op < OP_MATCH_MAX)
|
||||
rule_add_key(&rule_tmp, TK_M_DEVLINK, op, value, NULL);
|
||||
} else {
|
||||
int flag = 0;
|
||||
|
||||
attr = get_key_attribute(rules->udev, key + sizeof("SYMLINK")-1);
|
||||
if (attr != NULL && strstr(attr, "unique") != NULL)
|
||||
flag = 1;
|
||||
rule_add_key(&rule_tmp, TK_A_DEVLINK, op, value, &flag);
|
||||
}
|
||||
else
|
||||
rule_add_key(&rule_tmp, TK_A_DEVLINK, op, value, NULL);
|
||||
rule_tmp.rule.rule.can_set_name = true;
|
||||
continue;
|
||||
}
|
||||
|
@ -2578,7 +2568,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event
|
|||
log_debug("LINK '%s' %s:%u\n", pos,
|
||||
&rules->buf[rule->rule.filename_off], rule->rule.filename_line);
|
||||
util_strscpyl(filename, sizeof(filename), "/dev/", pos, NULL);
|
||||
udev_device_add_devlink(event->dev, filename, cur->key.devlink_unique);
|
||||
udev_device_add_devlink(event->dev, filename);
|
||||
while (isspace(next[1]))
|
||||
next++;
|
||||
pos = &next[1];
|
||||
|
@ -2588,7 +2578,7 @@ int udev_rules_apply_to_event(struct udev_rules *rules, struct udev_event *event
|
|||
log_debug("LINK '%s' %s:%u\n", pos,
|
||||
&rules->buf[rule->rule.filename_off], rule->rule.filename_line);
|
||||
util_strscpyl(filename, sizeof(filename), "/dev/", pos, NULL);
|
||||
udev_device_add_devlink(event->dev, filename, cur->key.devlink_unique);
|
||||
udev_device_add_devlink(event->dev, filename);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -932,15 +932,6 @@ EOF
|
|||
rules => <<EOF
|
||||
SUBSYSTEMS=="scsi", KERNEL=="sda1", SYMLINK+="before"
|
||||
KERNEL=="sda1", PROGRAM!="/bin/false", SYMLINK+="nonzero-program"
|
||||
EOF
|
||||
},
|
||||
{
|
||||
desc => "test for whitespace between the operator",
|
||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/sda1",
|
||||
exp_name => "true",
|
||||
rules => <<EOF
|
||||
SUBSYSTEMS=="scsi", KERNEL=="sda1", SYMLINK+="before"
|
||||
KERNEL == "sda1" , SYMLINK+ = "true"
|
||||
EOF
|
||||
},
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue