7a3408
From 352a07737fdc9a3c090eee92018f62865889c0ea Mon Sep 17 00:00:00 2001
7a3408
Message-Id: <352a07737fdc9a3c090eee92018f62865889c0ea@dist-git>
7a3408
From: John Ferlan <jferlan@redhat.com>
7a3408
Date: Thu, 9 Jul 2015 08:28:52 -0400
7a3408
Subject: [PATCH] qemu: Introduce qemuGetHostdevPath
7a3408
7a3408
https://bugzilla.redhat.com/show_bug.cgi?id=1072736
7a3408
7a3408
Introduce a convenience function to handle formulating the hostdev path
7a3408
7a3408
Signed-off-by: John Ferlan <jferlan@redhat.com>
7a3408
(cherry picked from commit 083cbe506b5134c36ecd544a2f9ac3d262951799)
7a3408
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
7a3408
---
7a3408
 src/qemu/qemu_conf.c | 27 ++++++++++++++++++++-------
7a3408
 1 file changed, 20 insertions(+), 7 deletions(-)
7a3408
7a3408
diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
7a3408
index 1467427..a761ec5 100644
7a3408
--- a/src/qemu/qemu_conf.c
7a3408
+++ b/src/qemu/qemu_conf.c
7a3408
@@ -1213,13 +1213,12 @@ qemuIsSharedHostdev(virDomainHostdevDefPtr hostdev)
7a3408
 
7a3408
 
7a3408
 static char *
7a3408
-qemuGetSharedHostdevKey(virDomainHostdevDefPtr hostdev)
7a3408
+qemuGetHostdevPath(virDomainHostdevDefPtr hostdev)
7a3408
 {
7a3408
     virDomainHostdevSubsysSCSIPtr scsisrc = &hostdev->source.subsys.u.scsi;
7a3408
     virDomainHostdevSubsysSCSIHostPtr scsihostsrc = &scsisrc->u.host;
7a3408
     char *dev_name = NULL;
7a3408
     char *dev_path = NULL;
7a3408
-    char *key = NULL;
7a3408
 
7a3408
     if (!(dev_name = virSCSIDeviceGetDevName(NULL,
7a3408
                                              scsihostsrc->adapter,
7a3408
@@ -1228,19 +1227,33 @@ qemuGetSharedHostdevKey(virDomainHostdevDefPtr hostdev)
7a3408
                                              scsihostsrc->unit)))
7a3408
         goto cleanup;
7a3408
 
7a3408
-    if (virAsprintf(&dev_path, "/dev/%s", dev_name) < 0)
7a3408
-        goto cleanup;
7a3408
-
7a3408
-    if (!(key = qemuGetSharedDeviceKey(dev_path)))
7a3408
-        goto cleanup;
7a3408
+    ignore_value(virAsprintf(&dev_path, "/dev/%s", dev_name));
7a3408
 
7a3408
  cleanup:
7a3408
     VIR_FREE(dev_name);
7a3408
+    return dev_path;
7a3408
+}
7a3408
+
7a3408
+
7a3408
+static char *
7a3408
+qemuGetSharedHostdevKey(virDomainHostdevDefPtr hostdev)
7a3408
+{
7a3408
+    char *key = NULL;
7a3408
+    char *dev_path = NULL;
7a3408
+
7a3408
+    if (!(dev_path = qemuGetHostdevPath(hostdev)))
7a3408
+        goto cleanup;
7a3408
+
7a3408
+    if (!(key = qemuGetSharedDeviceKey(dev_path)))
7a3408
+        goto cleanup;
7a3408
+
7a3408
+ cleanup:
7a3408
     VIR_FREE(dev_path);
7a3408
 
7a3408
     return key;
7a3408
 }
7a3408
 
7a3408
+
7a3408
 static int
7a3408
 qemuAddSharedHostdev(virQEMUDriverPtr driver,
7a3408
                      virDomainHostdevDefPtr hostdev,
7a3408
-- 
7a3408
2.5.1
7a3408