Remove duplicated code - make one path through Signed-off-by: John Ferlan <jferlan@xxxxxxxxxx> --- src/storage/storage_backend_scsi.c | 35 +++++++++++------------------------ 1 file changed, 11 insertions(+), 24 deletions(-) diff --git a/src/storage/storage_backend_scsi.c b/src/storage/storage_backend_scsi.c index 9863880..df48b1a 100644 --- a/src/storage/storage_backend_scsi.c +++ b/src/storage/storage_backend_scsi.c @@ -722,39 +722,26 @@ 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 (VIR_STRDUP(parent_hoststr, adapter->data.fchost.parent) < 0) + goto cleanup; + } else { if (!(parent_hoststr = virFindFCHostCapableVport(NULL))) { virReportError(VIR_ERR_XML_ERROR, "%s", _("'parent' for vHBA not specified, and " "cannot find one on this host")); goto cleanup; } + } - if (virGetSCSIHostNumber(parent_hoststr, &parent_host) < 0) - goto cleanup; + if (virGetSCSIHostNumber(parent_hoststr, &parent_host) < 0) + goto cleanup; - /* NOTE: - * We do not save the parent_hoststr in adapter->data.fchost.parent - * since we could be writing out the 'def' to the saved XML config. - * If we wrote out the name in the XML, then future starts would - * always use the same parent rather than finding the "best available" - * parent. Besides we have a way to determine the parent based on - * the 'name' field. - */ + if (adapter->data.fchost.parent && !virIsCapableFCHost(NULL, parent_host)) { + virReportError(VIR_ERR_XML_ERROR, + _("parent '%s' specified for vHBA is not vport capable"), + parent_hoststr); + goto cleanup; } /* Since we're creating the vHBA, then we need to manage removing it -- 2.7.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list