list_for_each_entry(device, &name_list, node) {
char filename[PATH_SIZE];
struct stat statbuf;
list_for_each_entry(device, &name_list, node) {
char filename[PATH_SIZE];
struct stat statbuf;
strlcpy(filename, udev_root, sizeof(filename));
strlcat(filename, "/", sizeof(filename));
strlcat(filename, name, sizeof(filename));
if (stat(filename, &statbuf) != 0)
continue;
strlcpy(filename, udev_root, sizeof(filename));
strlcat(filename, "/", sizeof(filename));
strlcat(filename, name, sizeof(filename));
if (stat(filename, &statbuf) != 0)
continue;
- if (statbuf.st_rdev == udev->devt) {
- info("found '%s', dev_t matches", udev->name);
- rc = 0;
- break;
+ if (major(udev->devt) > 0 && udev->devt != statbuf.st_rdev) {
+ info("skip '%s', dev_t doesn't match", udev->name);
+ continue;