VIR_WARN("cannot deny device %s for domain %s",
dst, vm->def->name);
+ virObjectLock(driver->activeUsbHostdevs);
virUSBDeviceListDel(driver->activeUsbHostdevs, usb);
+ virObjectUnlock(driver->activeUsbHostdevs);
virDomainHostdevRemove(vm->def, idx);
virDomainHostdevDefFree(def);
virUSBDeviceSetUsedBy(usb, def->name);
+ virObjectLock(driver->activeUsbHostdevs);
if (virUSBDeviceListAdd(driver->activeUsbHostdevs, usb) < 0) {
+ virObjectUnlock(driver->activeUsbHostdevs);
virUSBDeviceFree(usb);
return -1;
}
+ virObjectUnlock(driver->activeUsbHostdevs);
}
return 0;
count = virUSBDeviceListCount(list);
+ virObjectLock(driver->activeUsbHostdevs);
for (i = 0; i < count; i++) {
virUSBDevicePtr usb = virUSBDeviceListGet(list, i);
if ((tmp = virUSBDeviceListFind(driver->activeUsbHostdevs, usb))) {
if (virUSBDeviceListAdd(driver->activeUsbHostdevs, usb) < 0)
goto error;
}
+ virObjectUnlock(driver->activeUsbHostdevs);
return 0;
error:
tmp = virUSBDeviceListGet(list, i);
virUSBDeviceListSteal(driver->activeUsbHostdevs, tmp);
}
+ virObjectUnlock(driver->activeUsbHostdevs);
return -1;
}
{
size_t i;
+ virObjectLock(driver->activeUsbHostdevs);
for (i = 0; i < nhostdevs; i++) {
virDomainHostdevDefPtr hostdev = hostdevs[i];
virUSBDevicePtr usb, tmp;
virUSBDeviceListDel(driver->activeUsbHostdevs, tmp);
}
}
+ virObjectUnlock(driver->activeUsbHostdevs);
}
void virLXCDomainReAttachHostDevices(virLXCDriverPtr driver,