[libvirt] [PATCH] storage_scsi: Handle physical HBA when deleting vHBA vport.

Nitesh Konkar niteshkonkar.libvirt at gmail.com
Thu Apr 7 09:09:41 UTC 2016


HBA will get treated as vHBA if not returned
after detecting vhba_parent format.

Signed-off-by: Nitesh Konkar <nitkon12 at linux.vnet.ibm.com>
---
Before Patch:
# virsh pool-destroy poolhba_name
error: Failed to destroy pool poolhba_name
error: internal error: Invalid adapter name 'pci_000x_0x_00_x' for SCSI pool

# virsh nodedev-dumpxml scsi_host2
<device>
  <name>scsi_host2</name>
  <path>xxxx</path>
  <parent>pci_000x_0x_00_x</parent>
  <capability type='scsi_host'>
    <host>2</host>
    ...
    ...
    <capability type='vport_ops'>
      <max_vports>255</max_vports>
      <vports>0</vports>
    </capability>
  </capability>
</device>

After Patch:
# virsh pool-destroy poolhba_name
Pool poolhba_name destroyed

 src/storage/storage_backend_scsi.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/storage/storage_backend_scsi.c b/src/storage/storage_backend_scsi.c
index e6c8bb5..dd0343f 100644
--- a/src/storage/storage_backend_scsi.c
+++ b/src/storage/storage_backend_scsi.c
@@ -842,6 +842,11 @@ deleteVport(virConnectPtr conn,
         if (!(vhba_parent = virStoragePoolGetVhbaSCSIHostParent(conn, name)))
             goto cleanup;
 
+        if (STRPREFIX(vhba_parent, "pci")) {
+            ret = 0;
+            goto cleanup;
+        }
+
         if (virGetSCSIHostNumber(vhba_parent, &parent_host) < 0)
             goto cleanup;
     }
-- 
1.8.3.1




More information about the libvir-list mailing list