mdev: add support for "only rename" option in mdev.conf
authorDenis Vlasenko <vda.linux@googlemail.com>
Thu, 22 May 2008 17:49:58 +0000 (17:49 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Thu, 22 May 2008 17:49:58 +0000 (17:49 -0000)
util-linux/mdev.c

index 14aa593f558c26c6c2b76a0d5c32b0c882288893..d5faf432efd95d5e9c942e7c521952b94058d9bb 100644 (file)
@@ -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);
                        }