replace spaces in dm and md name symlinks
We create multiple symlinks for dm names with spaces, which isn't what we want.
This commit is contained in:
parent
4df1d70329
commit
ee173c5927
|
@ -11,9 +11,9 @@ KERNEL!="md*", GOTO="md_end"
|
|||
ATTR{md/array_state}=="|clear|inactive", GOTO="md_end"
|
||||
|
||||
IMPORT{program}="/sbin/mdadm --detail --export $tempnode"
|
||||
ENV{DEVTYPE}=="disk", ENV{MD_NAME}=="?*", SYMLINK+="disk/by-id/md-name-$env{MD_NAME}"
|
||||
ENV{DEVTYPE}=="disk", ENV{MD_NAME}=="?*", SYMLINK+="disk/by-id/md-name-$env{MD_NAME}", OPTIONS+="string_escape=replace"
|
||||
ENV{DEVTYPE}=="disk", ENV{MD_UUID}=="?*", SYMLINK+="disk/by-id/md-uuid-$env{MD_UUID}"
|
||||
ENV{DEVTYPE}=="partition", ENV{MD_NAME}=="?*", SYMLINK+="disk/by-id/md-name-$env{MD_NAME}-part%n"
|
||||
ENV{DEVTYPE}=="partition", ENV{MD_NAME}=="?*", SYMLINK+="disk/by-id/md-name-$env{MD_NAME}-part%n", OPTIONS+="string_escape=replace"
|
||||
ENV{DEVTYPE}=="partition", ENV{MD_UUID}=="?*", SYMLINK+="disk/by-id/md-uuid-$env{MD_UUID}-part%n"
|
||||
|
||||
IMPORT{program}="vol_id --export $tempnode"
|
||||
|
|
|
@ -8,7 +8,7 @@ ACTION!="add|change", GOTO="device_mapper_end"
|
|||
IMPORT{program}="/sbin/dmsetup export -j%M -m%m"
|
||||
ENV{DM_NAME}!="?*", GOTO="device_mapper_end"
|
||||
|
||||
SYMLINK+="disk/by-id/dm-name-$env{DM_NAME}"
|
||||
SYMLINK+="disk/by-id/dm-name-$env{DM_NAME}", OPTIONS+="string_escape=replace"
|
||||
ENV{DM_UUID}=="?*", SYMLINK+="disk/by-id/dm-uuid-$env{DM_UUID}"
|
||||
|
||||
ENV{DM_STATE}=="SUSPENDED", GOTO="device_mapper_end"
|
||||
|
|
|
@ -1447,7 +1447,7 @@ int udev_rules_get_name(struct udev_rules *rules, struct udevice *udevice)
|
|||
rule->symlink.operation == KEY_OP_ADD)) {
|
||||
char temp[UTIL_PATH_SIZE];
|
||||
char *pos, *next;
|
||||
int count;
|
||||
int count = 0;
|
||||
|
||||
if (rule->symlink.operation == KEY_OP_ASSIGN_FINAL)
|
||||
udevice->symlink_final = 1;
|
||||
|
@ -1459,12 +1459,12 @@ int udev_rules_get_name(struct udev_rules *rules, struct udevice *udevice)
|
|||
/* allow multiple symlinks separated by spaces */
|
||||
util_strlcpy(temp, key_val(rule, &rule->symlink), sizeof(temp));
|
||||
udev_rules_apply_format(udevice, temp, sizeof(temp));
|
||||
if (rule->string_escape == ESCAPE_UNSET ||
|
||||
rule->string_escape == ESCAPE_REPLACE) {
|
||||
if (rule->string_escape == ESCAPE_UNSET)
|
||||
count = util_replace_chars(temp, ALLOWED_CHARS_FILE " ");
|
||||
if (count > 0)
|
||||
info(udevice->udev, "%i character(s) replaced\n" , count);
|
||||
}
|
||||
else if (rule->string_escape == ESCAPE_REPLACE)
|
||||
count = util_replace_chars(temp, ALLOWED_CHARS_FILE);
|
||||
if (count > 0)
|
||||
info(udevice->udev, "%i character(s) replaced\n" , count);
|
||||
dbg(udevice->udev, "rule applied, added symlink(s) '%s'\n", temp);
|
||||
pos = temp;
|
||||
while (isspace(pos[0]))
|
||||
|
|
Loading…
Reference in a new issue