mdev: check for "/block/" substring for block dev detection
authorDenis Vlasenko <vda.linux@googlemail.com>
Sat, 12 Jul 2008 10:28:41 +0000 (10:28 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Sat, 12 Jul 2008 10:28:41 +0000 (10:28 -0000)
function                                             old     new   delta
make_device                                         1294    1269     -25

util-linux/mdev.c

index 4ac5c430ad26324e5cbc7c36c6ffa66c93fee1d7..dd9522999fe2cc3c781c5dea6ceaf5debaee4ea6 100644 (file)
@@ -96,13 +96,11 @@ static void make_device(char *path, int delete)
        /* Determine device name, type, major and minor */
        device_name = bb_basename(path);
        /* http://kernel.org/doc/pending/hotplug.txt says that only
-        * "/sys/block/..." is for block devices. "/sys/bus" etc is not!
-        * Since kernel 2.6.25 block devices are also in /sys/class/block. */
-       /* TODO: would it be acceptable to just use strstr(path, "/block/")? */
-       if (strncmp(&path[5], "class/block/"+6, 6) != 0
-        && strncmp(&path[5], "class/block/", 12) != 0)
-               type = S_IFCHR;
-       else
+        * "/sys/block/..." is for block devices. "/sys/bus" etc is not.
+        * But since 2.6.25 block devices are also in /sys/class/block.
+        * We use strstr("/block/") to forestall future surprises. */
+        type = S_IFCHR;
+       if (strstr(path, "/block/"))
                type = S_IFBLK;
 
        if (ENABLE_FEATURE_MDEV_CONF) {