mdev: add support for "only rename" option in mdev.conf
This commit is contained in:
parent
e9b76e1f1e
commit
4801441e9a
@ -46,6 +46,7 @@ static void make_device(char *path, int delete)
|
|||||||
char *dev_maj_min = path + strlen(path);
|
char *dev_maj_min = path + strlen(path);
|
||||||
char *command = NULL;
|
char *command = NULL;
|
||||||
char *alias = NULL;
|
char *alias = NULL;
|
||||||
|
int aliaslink;
|
||||||
|
|
||||||
/* Force the configuration file settings exactly. */
|
/* Force the configuration file settings exactly. */
|
||||||
umask(0);
|
umask(0);
|
||||||
@ -168,11 +169,12 @@ static void make_device(char *path, int delete)
|
|||||||
#if ENABLE_FEATURE_MDEV_RENAME
|
#if ENABLE_FEATURE_MDEV_RENAME
|
||||||
if (!next)
|
if (!next)
|
||||||
break;
|
break;
|
||||||
if (*next == '>') {
|
if (*next == '>' || *next == '=') {
|
||||||
#if ENABLE_FEATURE_MDEV_RENAME_REGEXP
|
#if ENABLE_FEATURE_MDEV_RENAME_REGEXP
|
||||||
char *s, *p;
|
char *s, *p;
|
||||||
unsigned i, n;
|
unsigned i, n;
|
||||||
|
|
||||||
|
aliaslink = (*next == '>');
|
||||||
val = next;
|
val = next;
|
||||||
next = next_field(val);
|
next = next_field(val);
|
||||||
/* substitute %1..9 with off[1..9], if any */
|
/* substitute %1..9 with off[1..9], if any */
|
||||||
@ -198,6 +200,7 @@ static void make_device(char *path, int delete)
|
|||||||
s++;
|
s++;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
aliaslink = (*next == '>');
|
||||||
val = next;
|
val = next;
|
||||||
next = next_field(val);
|
next = next_field(val);
|
||||||
alias = xstrdup(val + 1);
|
alias = xstrdup(val + 1);
|
||||||
@ -269,9 +272,8 @@ static void make_device(char *path, int delete)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* recreate device_name as a symlink to moved device node */
|
/* recreate device_name as a symlink to moved device node */
|
||||||
if (rename(device_name, alias) == 0) {
|
if (rename(device_name, alias) == 0 && aliaslink)
|
||||||
symlink(alias, device_name);
|
symlink(alias, device_name);
|
||||||
}
|
|
||||||
|
|
||||||
free(alias);
|
free(alias);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user