On 20.02.2017 14:18, John Ferlan wrote:
Move the bulk of the code to the node_device_conf and rename to
virNodeDevice{Create|Delete}Vport.
Alter the create algorithm slightly in order to return the name of
the scsi_host vHBA that was created. The existing code would fetch
the name and if it exists would start a thread looking for the LUNs;
however, in no way did it validate the device was created for the
storage pool even though it would be used thereafter.
This slight change allows the code that checks if the node device
by wwnn/wwpn already exists and return that name. This fixes a
second yet seen issue that if the nodedev was present, but the
parent by name wasn't provided (perhaps parent by wwnn/wwpn or
by fabric_name), then a failure would be returned. For this path
it shouldn't be an error - we should just be happy that something
else is managing the device and we don't have to create/delete it.
The end result is that the startVport code can now just start the
thread once it gets a non NULL name back.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
src/conf/node_device_conf.c | 211 +++++++++++++++++++++++++++++++++++++
src/conf/node_device_conf.h | 9 ++
src/libvirt_private.syms | 2 +
src/storage/storage_backend_scsi.c | 190 +++------------------------------
4 files changed, 235 insertions(+), 177 deletions(-)
ACK
Michal