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 <jferlan@xxxxxxxxxx> --- 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@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list