+struct udev_device *udev_device_new_from_parent(struct udev_device *udev_device)
+{
+ struct udev_device *udev_device_parent = NULL;
+ char path[UTIL_PATH_SIZE];
+ char *pos;
+
+ if (udev_device == NULL)
+ return NULL;
+
+ util_strlcpy(path, udev_device_get_devpath(udev_device), sizeof(path));
+ while (1) {
+ pos = strrchr(path, '/');
+ if (pos == NULL)
+ break;
+ pos[0] = '\0';
+ udev_device_parent = udev_device_new_from_devpath(udev_device->udev, path);
+ if (udev_device_parent != NULL)
+ break;
+ }
+ return udev_device_parent;
+}
+