virNodeDevicePtr nodeDeviceLookupByName(virConnectPtr conn, const char *name) { virNodeDeviceDriverStatePtr driver = conn->nodeDevicePrivateData; virNodeDeviceObjPtr obj; virNodeDevicePtr ret = NULL; nodeDeviceLock(driver); obj = virNodeDeviceFindByName(&driver->devs, name); nodeDeviceUnlock(driver); if (!obj) { virReportError(VIR_ERR_NO_NODE_DEVICE, NULL); goto cleanup; } if (virNodeDeviceLookupByNameEnsureACL(conn, obj->def) < 0) goto cleanup; ret = virGetNodeDevice(conn, name); cleanup: if (obj) virNodeDeviceObjUnlock(obj); return ret; }
virNodeDevicePtr nodeDeviceLookupByName(virConnectPtr conn, const char *name) { virNodeDeviceObjPtr obj; virNodeDevicePtr ret = NULL; nodeDeviceLock(); obj = virNodeDeviceFindByName(&driver->devs, name); nodeDeviceUnlock(); if (!obj) { virReportError(VIR_ERR_NO_NODE_DEVICE, _("no node device with matching name '%s'"), name); goto cleanup; } if (virNodeDeviceLookupByNameEnsureACL(conn, obj->def) < 0) goto cleanup; ret = virGetNodeDevice(conn, name); cleanup: if (obj) virNodeDeviceObjUnlock(obj); return ret; }
virNodeDevicePtr nodeDeviceLookupByName(virConnectPtr conn, const char *name) { virNodeDeviceObjPtr obj; virNodeDeviceDefPtr def; virNodeDevicePtr ret = NULL; if (!(obj = nodeDeviceObjFindByName(name))) return NULL; def = virNodeDeviceObjGetDef(obj); if (virNodeDeviceLookupByNameEnsureACL(conn, def) < 0) goto cleanup; if ((ret = virGetNodeDevice(conn, name))) { if (VIR_STRDUP(ret->parent, def->parent) < 0) { virObjectUnref(ret); ret = NULL; } } cleanup: virNodeDeviceObjUnlock(obj); return ret; }