}
-static char *
-qemuGetSharedHostdevKey(virDomainHostdevDefPtr hostdev)
-{
- char *key = NULL;
- char *dev_path = NULL;
-
- if (!(dev_path = qemuGetHostdevPath(hostdev)))
- goto cleanup;
-
- if (!(key = qemuGetSharedDeviceKey(dev_path)))
- goto cleanup;
-
- cleanup:
- VIR_FREE(dev_path);
-
- return key;
-}
-
-
static int
qemuAddSharedHostdev(virQEMUDriverPtr driver,
virDomainHostdevDefPtr hostdev,
const char *name)
{
+ char *dev_path = NULL;
char *key = NULL;
int ret = -1;
if (!qemuIsSharedHostdev(hostdev))
return 0;
- if (!(key = qemuGetSharedHostdevKey(hostdev)))
- return -1;
+ if (!(dev_path = qemuGetHostdevPath(hostdev)))
+ goto cleanup;
+
+ if (!(key = qemuGetSharedDeviceKey(dev_path)))
+ goto cleanup;
qemuDriverLock(driver);
ret = qemuSharedDeviceEntryInsert(driver, key, name);
qemuDriverUnlock(driver);
+ cleanup:
+ VIR_FREE(dev_path);
VIR_FREE(key);
return ret;
}
virDomainHostdevDefPtr hostdev,
const char *name)
{
+ char *dev_path = NULL;
char *key = NULL;
int ret;
if (!qemuIsSharedHostdev(hostdev))
return 0;
- if (!(key = qemuGetSharedHostdevKey(hostdev)))
- return -1;
+ if (!(dev_path = qemuGetHostdevPath(hostdev)))
+ goto cleanup;
+
+ if (!(key = qemuGetSharedDeviceKey(dev_path)))
+ goto cleanup;
qemuDriverLock(driver);
ret = qemuSharedDeviceEntryRemove(driver, key, name);
qemuDriverUnlock(driver);
+ cleanup:
+ VIR_FREE(dev_path);
VIR_FREE(key);
return ret;
}