Move the check for an already existing vHBA to the top of the function.
No sense in first decoding a provided parent if the next thing we're going
to do is fail if a provided wwnn/wwpn already exists.

Signed-off-by: John Ferlan <jfer...@redhat.com>
---
 src/storage/storage_backend_scsi.c | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/src/storage/storage_backend_scsi.c 
b/src/storage/storage_backend_scsi.c
index cf93fdc..9863880 100644
--- a/src/storage/storage_backend_scsi.c
+++ b/src/storage/storage_backend_scsi.c
@@ -706,20 +706,6 @@ createVport(virConnectPtr conn,
               conn, NULLSTR(configFile), NULLSTR(adapter->data.fchost.parent),
               adapter->data.fchost.wwnn, adapter->data.fchost.wwpn);
 
-    /* If a parent was provided, then let's make sure it's vhost capable */
-    if (adapter->data.fchost.parent) {
-        if (virGetSCSIHostNumber(adapter->data.fchost.parent, &parent_host) < 
0)
-            return -1;
-
-        if (!virIsCapableFCHost(NULL, parent_host)) {
-            virReportError(VIR_ERR_XML_ERROR,
-                           _("parent '%s' specified for vHBA "
-                             "is not vport capable"),
-                           adapter->data.fchost.parent);
-            return -1;
-        }
-    }
-
     /* If we find an existing HBA/vHBA within the fc_host sysfs
      * using the wwnn/wwpn, then a nodedev is already created for
      * this pool and we don't have to create the vHBA
@@ -736,6 +722,20 @@ createVport(virConnectPtr conn,
         goto cleanup;
     }
 
+    /* If a parent was provided, then let's make sure it's vhost capable */
+    if (adapter->data.fchost.parent) {
+        if (virGetSCSIHostNumber(adapter->data.fchost.parent, &parent_host) < 
0)
+            return -1;
+
+        if (!virIsCapableFCHost(NULL, parent_host)) {
+            virReportError(VIR_ERR_XML_ERROR,
+                           _("parent '%s' specified for vHBA "
+                             "is not vport capable"),
+                           adapter->data.fchost.parent);
+            return -1;
+        }
+    }
+
     if (!adapter->data.fchost.parent) {
         if (!(parent_hoststr = virFindFCHostCapableVport(NULL))) {
             virReportError(VIR_ERR_XML_ERROR, "%s",
-- 
2.7.4

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to