Re: [libvirt] [PATCH v2 1/5] storage: Check for valid fc_host parent at startup

2014-11-12 Thread Michal Privoznik

On 11.11.2014 16:21, John Ferlan wrote:



On 11/11/2014 10:05 AM, Michal Privoznik wrote:

On 11.11.2014 13:38, John Ferlan wrote:



On 11/11/2014 07:21 AM, Michal Privoznik wrote:

On 10.11.2014 23:45, John Ferlan wrote:

https://bugzilla.redhat.com/show_bug.cgi?id=1160565

If a 'parent' attribute is provided for the fchost, then at startup
time check to ensure it is a vport capable scsi_host. If the parent
is not vport capable, then disallow the startup. The following is the
expected results:

error: Failed to start pool fc_pool
error: XML error: parent 'scsi_host2' specified for vHBA is not vport capable

where the XML for the fc_pool is:

   pool type='scsi'
 namefc_pool/name
 source
   adapter type='fc_host' parent='scsi_host2' wwnn='5001a4aaf3ca174b' 
wwpn='5001a4a77192b864'/
 /source
...

and 'scsi_host2' is not vport capable.

Providing an incorrect parent and a correct wwnn/wwpn could lead to
failures at shutdown (deleteVport) where the assumption is the parent
is for the fchost.

NOTE: If the provided wwnn/wwpn doesn't resolve to an existing scsi_host,
 then we will be creating one with code (virManageVport) which
 assumes the parent is vport capable.

Signed-off-by: John Ferlan jfer...@redhat.com
---
src/storage/storage_backend_scsi.c | 22 ++
1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/src/storage/storage_backend_scsi.c 
b/src/storage/storage_backend_scsi.c
index 02160bc..549d8db 100644
--- a/src/storage/storage_backend_scsi.c
+++ b/src/storage/storage_backend_scsi.c
@@ -556,6 +556,20 @@ createVport(virStoragePoolSourceAdapter adapter)
if (adapter.type != VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST)
return 0;

+/* 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;


^^^ [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;
+}
+}
+
/* This filters either HBA or already created vHBA */
if ((name = virGetFCHostNameByWWN(NULL, adapter.data.fchost.wwnn,
  adapter.data.fchost.wwpn))) {
@@ -565,14 +579,14 @@ createVport(virStoragePoolSourceAdapter adapter)

if (!adapter.data.fchost.parent 
!(adapter.data.fchost.parent = virFindFCHostCapableVport(NULL))) {
- virReportError(VIR_ERR_XML_ERROR, %s,
+virReportError(VIR_ERR_XML_ERROR, %s,
   _('parent' for vHBA not specified, and 
 cannot find one on this host));
 return -1;
-}

-if (virGetSCSIHostNumber(adapter.data.fchost.parent, parent_host)  0)
-return -1;
+if (virGetSCSIHostNumber(adapter.data.fchost.parent, parent_host)  0)
+return -1;
+}


This chunk seems odd. After the error is reported, the control jumps out
from the function, so virGetSCSIHostNumer is not called at all. Did you
forget to commit something?



The earlier chunk of code where the parent exists, we figure the
parent_host value. [1]

This chunk is - if a parent wasn't provided, find a capable vport, then
get the parent_host value.

I moved it inside the if because it makes no sense to call the function
twice in the event we had a parent value..


My point is, when the conditions are met, and the error is reported the
control jumps out of the function right after virReportError(). That's
because there's 'return -1' after that. However, the next line in the
same block is yet another function call. This, however, will never be
called so it's a dead code. Hence my question.

Michal



Doh!  Of course as you'll find in later patches the logic is adjusted
and thus where my brain was already at.  I'll fix this one though to be:

diff --git a/src/storage/storage_backend_scsi.c b/src/storage/storage_backend_sc
index 549d8db..88928c9 100644
--- a/src/storage/storage_backend_scsi.c
+++ b/src/storage/storage_backend_scsi.c
@@ -577,12 +577,13 @@ createVport(virStoragePoolSourceAdapter adapter)
  return 0;
  }

-if (!adapter.data.fchost.parent 
-!(adapter.data.fchost.parent = virFindFCHostCapableVport(NULL))) {
-virReportError(VIR_ERR_XML_ERROR, %s,
-   _('parent' for vHBA not specified, and 
- cannot find one on this host));
- return -1;
+if (!adapter.data.fchost.parent) {
+if (!(adapter.data.fchost.parent = virFindFCHostCapableVport(NULL))) {
+virReportError(VIR_ERR_XML_ERROR, %s,
+   _('parent' for vHBA not specified, and 
+   

Re: [libvirt] [PATCH v2 1/5] storage: Check for valid fc_host parent at startup

2014-11-11 Thread Michal Privoznik

On 10.11.2014 23:45, John Ferlan wrote:

https://bugzilla.redhat.com/show_bug.cgi?id=1160565

If a 'parent' attribute is provided for the fchost, then at startup
time check to ensure it is a vport capable scsi_host. If the parent
is not vport capable, then disallow the startup. The following is the
expected results:

error: Failed to start pool fc_pool
error: XML error: parent 'scsi_host2' specified for vHBA is not vport capable

where the XML for the fc_pool is:

 pool type='scsi'
   namefc_pool/name
   source
 adapter type='fc_host' parent='scsi_host2' wwnn='5001a4aaf3ca174b' 
wwpn='5001a4a77192b864'/
   /source
...

and 'scsi_host2' is not vport capable.

Providing an incorrect parent and a correct wwnn/wwpn could lead to
failures at shutdown (deleteVport) where the assumption is the parent
is for the fchost.

NOTE: If the provided wwnn/wwpn doesn't resolve to an existing scsi_host,
   then we will be creating one with code (virManageVport) which
   assumes the parent is vport capable.

Signed-off-by: John Ferlan jfer...@redhat.com
---
  src/storage/storage_backend_scsi.c | 22 ++
  1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/src/storage/storage_backend_scsi.c 
b/src/storage/storage_backend_scsi.c
index 02160bc..549d8db 100644
--- a/src/storage/storage_backend_scsi.c
+++ b/src/storage/storage_backend_scsi.c
@@ -556,6 +556,20 @@ createVport(virStoragePoolSourceAdapter adapter)
  if (adapter.type != VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST)
  return 0;

+/* 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;
+}
+}
+
  /* This filters either HBA or already created vHBA */
  if ((name = virGetFCHostNameByWWN(NULL, adapter.data.fchost.wwnn,
adapter.data.fchost.wwpn))) {
@@ -565,14 +579,14 @@ createVport(virStoragePoolSourceAdapter adapter)

  if (!adapter.data.fchost.parent 
  !(adapter.data.fchost.parent = virFindFCHostCapableVport(NULL))) {
- virReportError(VIR_ERR_XML_ERROR, %s,
+virReportError(VIR_ERR_XML_ERROR, %s,
 _('parent' for vHBA not specified, and 
   cannot find one on this host));
   return -1;
-}

-if (virGetSCSIHostNumber(adapter.data.fchost.parent, parent_host)  0)
-return -1;
+if (virGetSCSIHostNumber(adapter.data.fchost.parent, parent_host)  0)
+return -1;
+}


This chunk seems odd. After the error is reported, the control jumps out 
from the function, so virGetSCSIHostNumer is not called at all. Did you 
forget to commit something?




  if (virManageVport(parent_host, adapter.data.fchost.wwpn,
 adapter.data.fchost.wwnn, VPORT_CREATE)  0)



Michal

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


Re: [libvirt] [PATCH v2 1/5] storage: Check for valid fc_host parent at startup

2014-11-11 Thread John Ferlan


On 11/11/2014 07:21 AM, Michal Privoznik wrote:
 On 10.11.2014 23:45, John Ferlan wrote:
 https://bugzilla.redhat.com/show_bug.cgi?id=1160565

 If a 'parent' attribute is provided for the fchost, then at startup
 time check to ensure it is a vport capable scsi_host. If the parent
 is not vport capable, then disallow the startup. The following is the
 expected results:

 error: Failed to start pool fc_pool
 error: XML error: parent 'scsi_host2' specified for vHBA is not vport capable

 where the XML for the fc_pool is:

  pool type='scsi'
namefc_pool/name
source
  adapter type='fc_host' parent='scsi_host2' wwnn='5001a4aaf3ca174b' 
 wwpn='5001a4a77192b864'/
/source
 ...

 and 'scsi_host2' is not vport capable.

 Providing an incorrect parent and a correct wwnn/wwpn could lead to
 failures at shutdown (deleteVport) where the assumption is the parent
 is for the fchost.

 NOTE: If the provided wwnn/wwpn doesn't resolve to an existing scsi_host,
then we will be creating one with code (virManageVport) which
assumes the parent is vport capable.

 Signed-off-by: John Ferlan jfer...@redhat.com
 ---
   src/storage/storage_backend_scsi.c | 22 ++
   1 file changed, 18 insertions(+), 4 deletions(-)

 diff --git a/src/storage/storage_backend_scsi.c 
 b/src/storage/storage_backend_scsi.c
 index 02160bc..549d8db 100644
 --- a/src/storage/storage_backend_scsi.c
 +++ b/src/storage/storage_backend_scsi.c
 @@ -556,6 +556,20 @@ createVport(virStoragePoolSourceAdapter adapter)
   if (adapter.type != VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST)
   return 0;

 +/* 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;

^^^ [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;
 +}
 +}
 +
   /* This filters either HBA or already created vHBA */
   if ((name = virGetFCHostNameByWWN(NULL, adapter.data.fchost.wwnn,
 adapter.data.fchost.wwpn))) {
 @@ -565,14 +579,14 @@ createVport(virStoragePoolSourceAdapter adapter)

   if (!adapter.data.fchost.parent 
   !(adapter.data.fchost.parent = virFindFCHostCapableVport(NULL))) {
 - virReportError(VIR_ERR_XML_ERROR, %s,
 +virReportError(VIR_ERR_XML_ERROR, %s,
  _('parent' for vHBA not specified, and 
cannot find one on this host));
return -1;
 -}

 -if (virGetSCSIHostNumber(adapter.data.fchost.parent, parent_host)  0)
 -return -1;
 +if (virGetSCSIHostNumber(adapter.data.fchost.parent, parent_host) 
  0)
 +return -1;
 +}
 
 This chunk seems odd. After the error is reported, the control jumps out 
 from the function, so virGetSCSIHostNumer is not called at all. Did you 
 forget to commit something?
 

The earlier chunk of code where the parent exists, we figure the
parent_host value. [1]

This chunk is - if a parent wasn't provided, find a capable vport, then
get the parent_host value.

I moved it inside the if because it makes no sense to call the function
twice in the event we had a parent value..

John



   if (virManageVport(parent_host, adapter.data.fchost.wwpn,
  adapter.data.fchost.wwnn, VPORT_CREATE)  0)

 
 Michal
 

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


Re: [libvirt] [PATCH v2 1/5] storage: Check for valid fc_host parent at startup

2014-11-11 Thread Michal Privoznik

On 11.11.2014 13:38, John Ferlan wrote:



On 11/11/2014 07:21 AM, Michal Privoznik wrote:

On 10.11.2014 23:45, John Ferlan wrote:

https://bugzilla.redhat.com/show_bug.cgi?id=1160565

If a 'parent' attribute is provided for the fchost, then at startup
time check to ensure it is a vport capable scsi_host. If the parent
is not vport capable, then disallow the startup. The following is the
expected results:

error: Failed to start pool fc_pool
error: XML error: parent 'scsi_host2' specified for vHBA is not vport capable

where the XML for the fc_pool is:

  pool type='scsi'
namefc_pool/name
source
  adapter type='fc_host' parent='scsi_host2' wwnn='5001a4aaf3ca174b' 
wwpn='5001a4a77192b864'/
/source
...

and 'scsi_host2' is not vport capable.

Providing an incorrect parent and a correct wwnn/wwpn could lead to
failures at shutdown (deleteVport) where the assumption is the parent
is for the fchost.

NOTE: If the provided wwnn/wwpn doesn't resolve to an existing scsi_host,
then we will be creating one with code (virManageVport) which
assumes the parent is vport capable.

Signed-off-by: John Ferlan jfer...@redhat.com
---
   src/storage/storage_backend_scsi.c | 22 ++
   1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/src/storage/storage_backend_scsi.c 
b/src/storage/storage_backend_scsi.c
index 02160bc..549d8db 100644
--- a/src/storage/storage_backend_scsi.c
+++ b/src/storage/storage_backend_scsi.c
@@ -556,6 +556,20 @@ createVport(virStoragePoolSourceAdapter adapter)
   if (adapter.type != VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST)
   return 0;

+/* 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;


^^^ [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;
+}
+}
+
   /* This filters either HBA or already created vHBA */
   if ((name = virGetFCHostNameByWWN(NULL, adapter.data.fchost.wwnn,
 adapter.data.fchost.wwpn))) {
@@ -565,14 +579,14 @@ createVport(virStoragePoolSourceAdapter adapter)

   if (!adapter.data.fchost.parent 
   !(adapter.data.fchost.parent = virFindFCHostCapableVport(NULL))) {
- virReportError(VIR_ERR_XML_ERROR, %s,
+virReportError(VIR_ERR_XML_ERROR, %s,
  _('parent' for vHBA not specified, and 
cannot find one on this host));
return -1;
-}

-if (virGetSCSIHostNumber(adapter.data.fchost.parent, parent_host)  0)
-return -1;
+if (virGetSCSIHostNumber(adapter.data.fchost.parent, parent_host)  0)
+return -1;
+}


This chunk seems odd. After the error is reported, the control jumps out
from the function, so virGetSCSIHostNumer is not called at all. Did you
forget to commit something?



The earlier chunk of code where the parent exists, we figure the
parent_host value. [1]

This chunk is - if a parent wasn't provided, find a capable vport, then
get the parent_host value.

I moved it inside the if because it makes no sense to call the function
twice in the event we had a parent value..


My point is, when the conditions are met, and the error is reported the 
control jumps out of the function right after virReportError(). That's 
because there's 'return -1' after that. However, the next line in the 
same block is yet another function call. This, however, will never be 
called so it's a dead code. Hence my question.


Michal

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


Re: [libvirt] [PATCH v2 1/5] storage: Check for valid fc_host parent at startup

2014-11-11 Thread John Ferlan


On 11/11/2014 10:05 AM, Michal Privoznik wrote:
 On 11.11.2014 13:38, John Ferlan wrote:


 On 11/11/2014 07:21 AM, Michal Privoznik wrote:
 On 10.11.2014 23:45, John Ferlan wrote:
 https://bugzilla.redhat.com/show_bug.cgi?id=1160565

 If a 'parent' attribute is provided for the fchost, then at startup
 time check to ensure it is a vport capable scsi_host. If the parent
 is not vport capable, then disallow the startup. The following is the
 expected results:

 error: Failed to start pool fc_pool
 error: XML error: parent 'scsi_host2' specified for vHBA is not vport 
 capable

 where the XML for the fc_pool is:

   pool type='scsi'
 namefc_pool/name
 source
   adapter type='fc_host' parent='scsi_host2' 
 wwnn='5001a4aaf3ca174b' wwpn='5001a4a77192b864'/
 /source
 ...

 and 'scsi_host2' is not vport capable.

 Providing an incorrect parent and a correct wwnn/wwpn could lead to
 failures at shutdown (deleteVport) where the assumption is the parent
 is for the fchost.

 NOTE: If the provided wwnn/wwpn doesn't resolve to an existing scsi_host,
 then we will be creating one with code (virManageVport) which
 assumes the parent is vport capable.

 Signed-off-by: John Ferlan jfer...@redhat.com
 ---
src/storage/storage_backend_scsi.c | 22 ++
1 file changed, 18 insertions(+), 4 deletions(-)

 diff --git a/src/storage/storage_backend_scsi.c 
 b/src/storage/storage_backend_scsi.c
 index 02160bc..549d8db 100644
 --- a/src/storage/storage_backend_scsi.c
 +++ b/src/storage/storage_backend_scsi.c
 @@ -556,6 +556,20 @@ createVport(virStoragePoolSourceAdapter adapter)
if (adapter.type != VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST)
return 0;

 +/* 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;

 ^^^ [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;
 +}
 +}
 +
/* This filters either HBA or already created vHBA */
if ((name = virGetFCHostNameByWWN(NULL, adapter.data.fchost.wwnn,
  adapter.data.fchost.wwpn))) {
 @@ -565,14 +579,14 @@ createVport(virStoragePoolSourceAdapter adapter)

if (!adapter.data.fchost.parent 
!(adapter.data.fchost.parent = 
 virFindFCHostCapableVport(NULL))) {
 - virReportError(VIR_ERR_XML_ERROR, %s,
 +virReportError(VIR_ERR_XML_ERROR, %s,
   _('parent' for vHBA not specified, and 
 cannot find one on this host));
 return -1;
 -}

 -if (virGetSCSIHostNumber(adapter.data.fchost.parent, parent_host)  
 0)
 -return -1;
 +if (virGetSCSIHostNumber(adapter.data.fchost.parent, 
 parent_host)  0)
 +return -1;
 +}

 This chunk seems odd. After the error is reported, the control jumps out
 from the function, so virGetSCSIHostNumer is not called at all. Did you
 forget to commit something?


 The earlier chunk of code where the parent exists, we figure the
 parent_host value. [1]

 This chunk is - if a parent wasn't provided, find a capable vport, then
 get the parent_host value.

 I moved it inside the if because it makes no sense to call the function
 twice in the event we had a parent value..
 
 My point is, when the conditions are met, and the error is reported the 
 control jumps out of the function right after virReportError(). That's 
 because there's 'return -1' after that. However, the next line in the 
 same block is yet another function call. This, however, will never be 
 called so it's a dead code. Hence my question.
 
 Michal
 

Doh!  Of course as you'll find in later patches the logic is adjusted
and thus where my brain was already at.  I'll fix this one though to be:

diff --git a/src/storage/storage_backend_scsi.c b/src/storage/storage_backend_sc
index 549d8db..88928c9 100644
--- a/src/storage/storage_backend_scsi.c
+++ b/src/storage/storage_backend_scsi.c
@@ -577,12 +577,13 @@ createVport(virStoragePoolSourceAdapter adapter)
 return 0;
 }
 
-if (!adapter.data.fchost.parent 
-!(adapter.data.fchost.parent = virFindFCHostCapableVport(NULL))) {
-virReportError(VIR_ERR_XML_ERROR, %s,
-   _('parent' for vHBA not specified, and 
- cannot find one on this host));
- return -1;
+if (!adapter.data.fchost.parent) {
+if (!(adapter.data.fchost.parent = virFindFCHostCapableVport(NULL))) {
+virReportError(VIR_ERR_XML_ERROR, %s,
+   _('parent' for 

[libvirt] [PATCH v2 1/5] storage: Check for valid fc_host parent at startup

2014-11-10 Thread John Ferlan
https://bugzilla.redhat.com/show_bug.cgi?id=1160565

If a 'parent' attribute is provided for the fchost, then at startup
time check to ensure it is a vport capable scsi_host. If the parent
is not vport capable, then disallow the startup. The following is the
expected results:

error: Failed to start pool fc_pool
error: XML error: parent 'scsi_host2' specified for vHBA is not vport capable

where the XML for the fc_pool is:

pool type='scsi'
  namefc_pool/name
  source
adapter type='fc_host' parent='scsi_host2' wwnn='5001a4aaf3ca174b' 
wwpn='5001a4a77192b864'/
  /source
...

and 'scsi_host2' is not vport capable.

Providing an incorrect parent and a correct wwnn/wwpn could lead to
failures at shutdown (deleteVport) where the assumption is the parent
is for the fchost.

NOTE: If the provided wwnn/wwpn doesn't resolve to an existing scsi_host,
  then we will be creating one with code (virManageVport) which
  assumes the parent is vport capable.

Signed-off-by: John Ferlan jfer...@redhat.com
---
 src/storage/storage_backend_scsi.c | 22 ++
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/src/storage/storage_backend_scsi.c 
b/src/storage/storage_backend_scsi.c
index 02160bc..549d8db 100644
--- a/src/storage/storage_backend_scsi.c
+++ b/src/storage/storage_backend_scsi.c
@@ -556,6 +556,20 @@ createVport(virStoragePoolSourceAdapter adapter)
 if (adapter.type != VIR_STORAGE_POOL_SOURCE_ADAPTER_TYPE_FC_HOST)
 return 0;
 
+/* 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;
+}
+}
+
 /* This filters either HBA or already created vHBA */
 if ((name = virGetFCHostNameByWWN(NULL, adapter.data.fchost.wwnn,
   adapter.data.fchost.wwpn))) {
@@ -565,14 +579,14 @@ createVport(virStoragePoolSourceAdapter adapter)
 
 if (!adapter.data.fchost.parent 
 !(adapter.data.fchost.parent = virFindFCHostCapableVport(NULL))) {
- virReportError(VIR_ERR_XML_ERROR, %s,
+virReportError(VIR_ERR_XML_ERROR, %s,
_('parent' for vHBA not specified, and 
  cannot find one on this host));
  return -1;
-}
 
-if (virGetSCSIHostNumber(adapter.data.fchost.parent, parent_host)  0)
-return -1;
+if (virGetSCSIHostNumber(adapter.data.fchost.parent, parent_host)  0)
+return -1;
+}
 
 if (virManageVport(parent_host, adapter.data.fchost.wwpn,
adapter.data.fchost.wwnn, VPORT_CREATE)  0)
-- 
1.9.3

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