Removing devicePath member from dev struct

I realized that I inadvertently added a member to the def struct to
contain each device's sysfs path when there was an existing member in the
dev struct for "OS specific path to device metadat, eg sysfs"  Since the
udev backend needs to record the sysfs path while it's in the process of
creating the device, before the dev struct gets allocated, I chose to
remove the member from the dev struct.

* src/conf/node_device_conf.c src/conf/node_device_conf.h
  src/node_device/node_device_driver.c src/node_device/node_device_hal.c
  src/node_device/node_device_udev.c: remove devicePath from the
  structure and use def->sysfs_path instead
This commit is contained in:
Dave Allan 2009-11-19 16:02:18 +01:00 committed by Daniel Veillard
parent 0fe553744a
commit f2f656d426
5 changed files with 2 additions and 11 deletions

View File

@ -156,7 +156,6 @@ void virNodeDeviceObjFree(virNodeDeviceObjPtr dev)
if (!dev)
return;
VIR_FREE(dev->devicePath);
virNodeDeviceDefFree(dev->def);
if (dev->privateFree)
(*dev->privateFree)(dev->privateData);

View File

@ -178,7 +178,6 @@ typedef virNodeDeviceObj *virNodeDeviceObjPtr;
struct _virNodeDeviceObj {
virMutex lock;
char *devicePath; /* OS specific path to device metadat, eg sysfs */
virNodeDeviceDefPtr def; /* device definition */
void *privateData; /* driver-specific private data */
void (*privateFree)(void *data); /* destructor for private data */

View File

@ -85,7 +85,7 @@ static int update_driver_name(virConnectPtr conn,
VIR_FREE(dev->def->driver);
if (virAsprintf(&driver_link, "%s/driver", dev->devicePath) < 0) {
if (virAsprintf(&driver_link, "%s/driver", dev->def->sysfs_path) < 0) {
virReportOOMError(conn);
goto cleanup;
}

View File

@ -470,7 +470,7 @@ static void dev_create(const char *udi)
dev->privateData = privData;
dev->privateFree = free_udi;
dev->devicePath = devicePath;
dev->def->sysfs_path = devicePath;
virNodeDeviceObjUnlock(dev);

View File

@ -1230,13 +1230,6 @@ static int udevAddOneDevice(struct udev_device *device)
goto out;
}
dev->devicePath = strdup(udev_device_get_devpath(device));
if (dev->devicePath == NULL) {
virReportOOMError(NULL);
virNodeDeviceObjRemove(&driverState->devs, dev);
goto out;
}
virNodeDeviceObjUnlock(dev);
ret = 0;