}
void virNodeDeviceObjRemove(virNodeDeviceObjListPtr devs,
- virNodeDeviceObjPtr dev)
+ virNodeDeviceObjPtr *dev)
{
size_t i;
- virNodeDeviceObjUnlock(dev);
+ virNodeDeviceObjUnlock(*dev);
for (i = 0; i < devs->count; i++) {
- virNodeDeviceObjLock(dev);
- if (devs->objs[i] == dev) {
- virNodeDeviceObjUnlock(dev);
+ virNodeDeviceObjLock(*dev);
+ if (devs->objs[i] == *dev) {
+ virNodeDeviceObjUnlock(*dev);
virNodeDeviceObjFree(devs->objs[i]);
+ *dev = NULL;
VIR_DELETE_ELEMENT(devs->objs, i, devs->count);
break;
}
- virNodeDeviceObjUnlock(dev);
+ virNodeDeviceObjUnlock(*dev);
}
}
virNodeDeviceDefPtr def);
void virNodeDeviceObjRemove(virNodeDeviceObjListPtr devs,
- virNodeDeviceObjPtr dev);
+ virNodeDeviceObjPtr *dev);
char *virNodeDeviceDefFormat(const virNodeDeviceDef *def);
/* Simply "rediscover" device -- incrementally handling changes
* to sub-capabilities (like net.80203) is nasty ... so avoid it.
*/
- virNodeDeviceObjRemove(&driver->devs, dev);
+ virNodeDeviceObjRemove(&driver->devs, &dev);
} else {
VIR_DEBUG("no device named %s", name);
}
dev = virNodeDeviceFindByName(&driver->devs, name);
VIR_DEBUG("%s", name);
if (dev)
- virNodeDeviceObjRemove(&driver->devs, dev);
+ virNodeDeviceObjRemove(&driver->devs, &dev);
else
VIR_DEBUG("no device named %s", name);
nodeDeviceUnlock();
VIR_DEBUG("Removing device '%s' with sysfs path '%s'",
dev->def->name, name);
- virNodeDeviceObjRemove(&driver->devs, dev);
+ virNodeDeviceObjRemove(&driver->devs, &dev);
ret = 0;
cleanup:
0);
virNodeDeviceObjLock(obj);
- virNodeDeviceObjRemove(&driver->devs, obj);
+ virNodeDeviceObjRemove(&driver->devs, &obj);
out:
if (obj)