1 diff --git a/src/libudev-enumerate.c b/src/libudev-enumerate.c
2 index 034d96f..ca7f068 100644
3 --- a/src/libudev-enumerate.c
4 +++ b/src/libudev-enumerate.c
5 @@ -730,6 +730,30 @@ static int scan_dir(struct udev_enumerate *udev_enumerate, const char *basedir,
9 +static int scan_dir_block(struct udev_enumerate *udev_enumerate)
11 + struct udev *udev = udev_enumerate_get_udev(udev_enumerate);
13 + char path[UTIL_PATH_SIZE];
15 + struct dirent *dent;
16 + const char *basedir = "block";
18 + util_strscpyl(path, sizeof(path), udev_get_sys_path(udev), "/", basedir, NULL);
19 + dir = opendir(path);
22 + for (dent = readdir(dir); dent != NULL; dent = readdir(dir)) {
23 + if (dent->d_name[0] == '.')
25 + if ((dent->d_name[0] != 's') || (dent->d_name[1] != 'd'))
27 + scan_dir_and_add_devices(udev_enumerate, basedir, dent->d_name, NULL);
34 * udev_enumerate_add_syspath:
35 * @udev_enumerate: context
36 @@ -877,6 +901,15 @@ static int scan_devices_all(struct udev_enumerate *udev_enumerate)
37 scan_dir(udev_enumerate, "bus", "devices", NULL);
38 dbg(udev, "searching '/class/*' dir\n");
39 scan_dir(udev_enumerate, "class", NULL, NULL);
41 + char tmp[UTIL_PATH_SIZE];
42 + util_strscpyl(tmp, sizeof(tmp), udev_get_sys_path(udev), "/class/block", NULL);
43 + if (stat(tmp, &statbuf) != 0)
45 + dbg(udev, "searching %s/*\n", tmp);
46 + scan_dir_block(udev_enumerate);