1
0
mirror of https://github.com/systemd/systemd.git synced 2025-03-24 14:50:17 +03:00

libudev: return kernel provided devnode when asked before we handled any rules

This commit is contained in:
Kay Sievers 2010-10-22 13:50:55 +02:00
parent a74beafdcc
commit cdb1d7608a
2 changed files with 13 additions and 2 deletions

View File

@ -35,7 +35,7 @@ DISTCHECK_HOOKS =
# libudev
# ------------------------------------------------------------------------------
LIBUDEV_CURRENT=9
LIBUDEV_REVISION=2
LIBUDEV_REVISION=3
LIBUDEV_AGE=9
SUBDIRS += libudev/docs

View File

@ -876,8 +876,19 @@ const char *udev_device_get_devnode(struct udev_device *udev_device)
{
if (udev_device == NULL)
return NULL;
if (!udev_device->info_loaded)
if (!udev_device->info_loaded) {
udev_device_read_uevent_file(udev_device);
udev_device_read_db(udev_device);
}
/* we might get called before we handled an event and have a db, use the kernel-provided name */
if (udev_device->devnode == NULL && udev_device_get_knodename(udev_device) != NULL) {
if (asprintf(&udev_device->devnode, "%s/%s",
udev_get_dev_path(udev_device->udev), udev_device_get_knodename(udev_device)) < 0)
return NULL;
return udev_device->devnode;
}
return udev_device->devnode;
}