
On 03/03/2010 03:58 PM, Ed Swierk wrote:
The udev node device driver relies on the "device" symlink in sysfs to populate the node device's parent property. Loopback, vlan and bridge network interfaces don't have a real hardware parent but could be useful to include as node devices anyway (and the hal node device driver does include them).
This patch allows the udev node device driver to include network interfaces lacking a "device" symlink as node devices, and sets the parent property to "computer".
Signed-off-by: Ed Swierk <eswierk@aristanetworks.com>
--- Index: libvirt-0.7.6/src/node_device/node_device_udev.c =================================================================== --- libvirt-0.7.6.orig/src/node_device/node_device_udev.c +++ libvirt-0.7.6/src/node_device/node_device_udev.c @@ -1220,14 +1220,13 @@ static int udevSetParent(struct udev_dev if (parent_device == NULL) { VIR_INFO("Could not find udev parent for device with sysfs path '%s'", udev_device_get_syspath(device)); - goto out; }
parent_sysfs_path = udev_device_get_syspath(parent_device);
Where is udev_device_get_syspath declared? I'm assuming it's generated, since 'git grep' didn't find it. The only concern I have is whether it sanely reacts to a NULL argument, but since I couldn't find it, I'm not sure. If it gracefully returns NULL on a NULL argument, then...
if (parent_sysfs_path == NULL) { VIR_INFO("Could not get syspath for parent of '%s'", udev_device_get_syspath(device)); - goto out; + parent_sysfs_path = ""; }
ACK -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org