From: Denis Vlasenko Date: Thu, 22 May 2008 17:49:58 +0000 (-0000) Subject: mdev: add support for "only rename" option in mdev.conf X-Git-Tag: 1_11_0~192 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=4801441e9a30015c6e11b300eae49c91b5c9af7a;p=oweals%2Fbusybox.git mdev: add support for "only rename" option in mdev.conf --- diff --git a/util-linux/mdev.c b/util-linux/mdev.c index 14aa593f5..d5faf432e 100644 --- a/util-linux/mdev.c +++ b/util-linux/mdev.c @@ -46,6 +46,7 @@ static void make_device(char *path, int delete) char *dev_maj_min = path + strlen(path); char *command = NULL; char *alias = NULL; + int aliaslink; /* Force the configuration file settings exactly. */ umask(0); @@ -168,11 +169,12 @@ static void make_device(char *path, int delete) #if ENABLE_FEATURE_MDEV_RENAME if (!next) break; - if (*next == '>') { + if (*next == '>' || *next == '=') { #if ENABLE_FEATURE_MDEV_RENAME_REGEXP char *s, *p; unsigned i, n; + aliaslink = (*next == '>'); val = next; next = next_field(val); /* substitute %1..9 with off[1..9], if any */ @@ -198,6 +200,7 @@ static void make_device(char *path, int delete) s++; } #else + aliaslink = (*next == '>'); val = next; next = next_field(val); 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 */ - if (rename(device_name, alias) == 0) { + if (rename(device_name, alias) == 0 && aliaslink) symlink(alias, device_name); - } free(alias); }