From: John Ferlan Date: Tue, 16 Jun 2015 17:58:44 +0000 (-0400) Subject: qemu: Introduce qemuGetHostdevPath X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=083cbe506b5134c36ecd544a2f9ac3d262951799;p=people%2Fliuw%2Flibxenctrl-split%2Flibvirt.git qemu: Introduce qemuGetHostdevPath Introduce a convenience function to handle formulating the hostdev path Signed-off-by: John Ferlan --- diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index 679e11b57..391fb2c70 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -1213,13 +1213,12 @@ qemuIsSharedHostdev(virDomainHostdevDefPtr hostdev) static char * -qemuGetSharedHostdevKey(virDomainHostdevDefPtr hostdev) +qemuGetHostdevPath(virDomainHostdevDefPtr hostdev) { virDomainHostdevSubsysSCSIPtr scsisrc = &hostdev->source.subsys.u.scsi; virDomainHostdevSubsysSCSIHostPtr scsihostsrc = &scsisrc->u.host; char *dev_name = NULL; char *dev_path = NULL; - char *key = NULL; if (!(dev_name = virSCSIDeviceGetDevName(NULL, scsihostsrc->adapter, @@ -1228,19 +1227,33 @@ qemuGetSharedHostdevKey(virDomainHostdevDefPtr hostdev) scsihostsrc->unit))) goto cleanup; - if (virAsprintf(&dev_path, "/dev/%s", dev_name) < 0) + ignore_value(virAsprintf(&dev_path, "/dev/%s", dev_name)); + + cleanup: + VIR_FREE(dev_name); + return dev_path; +} + + +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_name); VIR_FREE(dev_path); return key; } + static int qemuAddSharedHostdev(virQEMUDriverPtr driver, virDomainHostdevDefPtr hostdev,