mdev: fix block/char device detection. Closes bug 2144.

diff --git a/util-linux/mdev.c b/util-linux/mdev.c
index c4c4350..c8d603b 100644
--- a/util-linux/mdev.c
+++ b/util-linux/mdev.c
@@ -69,7 +69,9 @@
 
 	/* Determine device name, type, major and minor */
 	device_name = bb_basename(path);
-	type = (path[5] == 'c' ? S_IFCHR : S_IFBLK); /* "/sys/[c]lass"? */
+	/* http://kernel.org/doc/pending/hotplug.txt says that only
+	 * "/sys/block/..." is for block devices. "sys/bus" etc is not! */
+	type = (strncmp(&path[5], "block/", 6) == 0 ? S_IFBLK : S_IFCHR);
 
 	if (ENABLE_FEATURE_MDEV_CONF) {
 		FILE *fp;