From 476ecf2a2a7f9d7498fbe61b0431006f4088125d Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Fri, 18 Nov 2016 07:44:52 -0500 Subject: [PATCH] scsi: Change order of checks in createVport 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 --- 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 cf93fdcbe6..b5c64bff26 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) + goto cleanup; + + if (!virIsCapableFCHost(NULL, parent_host)) { + virReportError(VIR_ERR_XML_ERROR, + _("parent '%s' specified for vHBA " + "is not vport capable"), + adapter->data.fchost.parent); + goto cleanup; + } + } + if (!adapter->data.fchost.parent) { if (!(parent_hoststr = virFindFCHostCapableVport(NULL))) { virReportError(VIR_ERR_XML_ERROR, "%s", -- GitLab