const char *cap,
unsigned int flags)
{
- int ndevs = 0;
-
if (virNodeNumOfDevicesEnsureACL(conn) < 0)
return -1;
virCheckFlags(0, -1);
- nodeDeviceLock();
- ndevs = virNodeDeviceObjListNumOfDevices(driver->devs, conn, cap,
- virNodeNumOfDevicesCheckACL);
- nodeDeviceUnlock();
-
- return ndevs;
+ return virNodeDeviceObjListNumOfDevices(driver->devs, conn, cap,
+ virNodeNumOfDevicesCheckACL);
}
int maxnames,
unsigned int flags)
{
- int nnames;
-
if (virNodeListDevicesEnsureACL(conn) < 0)
return -1;
virCheckFlags(0, -1);
- nodeDeviceLock();
- nnames = virNodeDeviceObjListGetNames(driver->devs, conn,
- virNodeListDevicesCheckACL,
- cap, names, maxnames);
- nodeDeviceUnlock();
-
- return nnames;
+ return virNodeDeviceObjListGetNames(driver->devs, conn,
+ virNodeListDevicesCheckACL,
+ cap, names, maxnames);
}
virNodeDevicePtr **devices,
unsigned int flags)
{
- int ret = -1;
-
virCheckFlags(VIR_CONNECT_LIST_NODE_DEVICES_FILTERS_CAP, -1);
if (virConnectListAllNodeDevicesEnsureACL(conn) < 0)
return -1;
- nodeDeviceLock();
- ret = virNodeDeviceObjListExport(conn, driver->devs, devices,
- virConnectListAllNodeDevicesCheckACL,
- flags);
- nodeDeviceUnlock();
- return ret;
+ return virNodeDeviceObjListExport(conn, driver->devs, devices,
+ virConnectListAllNodeDevicesCheckACL,
+ flags);
}
{
virNodeDeviceObjPtr obj;
- nodeDeviceLock();
- obj = virNodeDeviceObjListFindByName(driver->devs, name);
- nodeDeviceUnlock();
-
- if (!obj) {
+ if (!(obj = virNodeDeviceObjListFindByName(driver->devs, name))) {
virReportError(VIR_ERR_NO_NODE_DEVICE,
_("no node device with matching name '%s'"),
name);
virCheckFlags(0, NULL);
- nodeDeviceLock();
- obj = virNodeDeviceObjListFindSCSIHostByWWNs(driver->devs, wwnn, wwpn);
- nodeDeviceUnlock();
-
- if (!obj)
+ if (!(obj = virNodeDeviceObjListFindSCSIHostByWWNs(driver->devs,
+ wwnn, wwpn)))
return NULL;
def = virNodeDeviceObjGetDef(obj);
virNodeDevicePtr device = NULL;
time_t start = 0, now = 0;
- /* The thread that creates the device takes the driver lock, so we
- * must release it in order to allow the device to be created.
- * We're not doing anything with the driver pointer at this point,
- * so it's safe to release it, assuming that the pointer itself
- * doesn't become invalid. */
- nodeDeviceUnlock();
-
nodeDeviceGetTime(&start);
while ((now - start) < LINUX_NEW_DEVICE_WAIT_TIME) {
break;
}
- nodeDeviceLock();
-
return device;
}
virCheckFlags(0, NULL);
virt_type = virConnectGetType(conn);
- nodeDeviceLock();
-
if (!(def = virNodeDeviceDefParseString(xmlDesc, CREATE_DEVICE, virt_type)))
goto cleanup;
"wwnn '%s' and wwpn '%s'"),
def->name, wwnn, wwpn);
cleanup:
- nodeDeviceUnlock();
virNodeDeviceDefFree(def);
VIR_FREE(wwnn);
VIR_FREE(wwpn);
return -1;
def = virNodeDeviceObjGetDef(obj);
- nodeDeviceLock();
-
if (virNodeDeviceDestroyEnsureACL(device->conn, def) < 0)
goto cleanup;
ret = 0;
cleanup:
- nodeDeviceUnlock();
virNodeDeviceObjEndAPI(&obj);
VIR_FREE(parent);
VIR_FREE(wwnn);
const char *name = hal_name(udi);
virNodeDeviceObjPtr obj;
- nodeDeviceLock();
if ((obj = virNodeDeviceObjListFindByName(driver->devs, name))) {
/* Simply "rediscover" device -- incrementally handling changes
* to sub-capabilities (like net.80203) is nasty ... so avoid it.
*/
virNodeDeviceObjListRemove(driver->devs, obj);
- } else {
- VIR_DEBUG("no device named %s", name);
- }
- nodeDeviceUnlock();
-
- if (obj) {
virObjectUnref(obj);
dev_create(udi);
+ } else {
+ VIR_DEBUG("no device named %s", name);
}
}
const char *name = hal_name(udi);
virNodeDeviceObjPtr obj;
- nodeDeviceLock();
obj = virNodeDeviceObjListFindByName(driver->devs, name);
VIR_DEBUG("%s", name);
if (obj)
virNodeDeviceObjListRemove(driver->devs, obj);
else
VIR_DEBUG("no device named %s", name);
- nodeDeviceUnlock();
virObjectUnref(obj);
}
virNodeDeviceObjPtr obj;
virNodeDeviceDefPtr def;
- nodeDeviceLock();
- obj = virNodeDeviceObjListFindByName(driver->devs, name);
- nodeDeviceUnlock();
VIR_DEBUG("%s %s", cap, name);
- if (obj) {
+ if ((obj = virNodeDeviceObjListFindByName(driver->devs, name))) {
def = virNodeDeviceObjGetDef(obj);
(void)gather_capability(ctx, udi, cap, &def->caps);
virNodeDeviceObjEndAPI(&obj);
const char *action = NULL;
int udev_fd = -1;
- nodeDeviceLock();
udev_fd = udev_monitor_get_fd(udev_monitor);
if (fd != udev_fd) {
virReportError(VIR_ERR_INTERNAL_ERROR,
cleanup:
udev_device_unref(device);
- nodeDeviceUnlock();
return;
}
{
udevPrivate *priv = NULL;
struct udev *udev = NULL;
- int ret = -1;
if (VIR_ALLOC(priv) < 0)
return -1;
if (udevSetupSystemDev() != 0)
goto cleanup;
- /* Populate with known devices */
+ nodeDeviceUnlock();
+ /* Populate with known devices */
if (udevEnumerateDevices(udev) != 0)
goto cleanup;
- ret = 0;
+ return 0;
cleanup:
nodeDeviceUnlock();
-
- if (ret == -1)
- nodeStateCleanup();
- return ret;
+ nodeStateCleanup();
+ return -1;
}
{
virNodeDeviceObjPtr obj;
- testDriverLock(driver);
- obj = virNodeDeviceObjListFindByName(driver->devs, name);
- testDriverUnlock(driver);
-
- if (!obj)
+ if (!(obj = virNodeDeviceObjListFindByName(driver->devs, name)))
virReportError(VIR_ERR_NO_NODE_DEVICE,
_("no node device with matching name '%s'"),
name);
unsigned int flags)
{
testDriverPtr driver = conn->privateData;
- int ndevs = 0;
virCheckFlags(0, -1);
- testDriverLock(driver);
- ndevs = virNodeDeviceObjListNumOfDevices(driver->devs, conn, cap, NULL);
- testDriverUnlock(driver);
-
- return ndevs;
+ return virNodeDeviceObjListNumOfDevices(driver->devs, conn, cap, NULL);
}
unsigned int flags)
{
testDriverPtr driver = conn->privateData;
- int nnames = 0;
virCheckFlags(0, -1);
- testDriverLock(driver);
- nnames = virNodeDeviceObjListGetNames(driver->devs, conn, NULL,
- cap, names, maxnames);
- testDriverUnlock(driver);
-
- return nnames;
+ return virNodeDeviceObjListGetNames(driver->devs, conn, NULL,
+ cap, names, maxnames);
}
virCheckFlags(0, NULL);
- testDriverLock(driver);
-
if (!(def = virNodeDeviceDefParseString(xmlDesc, CREATE_DEVICE, NULL)))
goto cleanup;
cleanup:
virNodeDeviceObjEndAPI(&obj);
- testDriverUnlock(driver);
virNodeDeviceDefFree(def);
virObjectUnref(dev);
VIR_FREE(wwnn);