mdev: /sys/class/block/ are also block devices

function                                             old     new   delta
make_device                                         1200    1221     +21
This commit is contained in:
Denis Vlasenko 2008-05-08 21:49:28 +00:00
parent 4b04f543a1
commit 4579e9c1c8

View File

@ -70,8 +70,14 @@ static void make_device(char *path, int delete)
/* Determine device name, type, major and minor */ /* Determine device name, type, major and minor */
device_name = bb_basename(path); device_name = bb_basename(path);
/* http://kernel.org/doc/pending/hotplug.txt says that only /* http://kernel.org/doc/pending/hotplug.txt says that only
* "/sys/block/..." is for block devices. "sys/bus" etc is not! */ * "/sys/block/..." is for block devices. "/sys/bus" etc is not!
type = (strncmp(&path[5], "block/", 6) == 0 ? S_IFBLK : S_IFCHR); * 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
type = S_IFBLK;
if (ENABLE_FEATURE_MDEV_CONF) { if (ENABLE_FEATURE_MDEV_CONF) {
FILE *fp; FILE *fp;