[libvirt] [PATCH 3/4] conf: Use existing SCSI hostdev model to create new

Ján Tomko jtomko at redhat.com
Thu Jan 4 14:02:27 UTC 2018


On Wed, Dec 20, 2017 at 01:52:16PM +0100, Ján Tomko wrote:
>On Wed, Dec 06, 2017 at 08:08:05AM -0500, John Ferlan wrote:
>>In virDomainDefMaybeAddHostdevSCSIcontroller when we add a new
>>controller because someone neglected to add one or we're adding
>>one because the existing one is full, we should copy over the
>>model number from the existing controller since whatever we
>>create should at least have the same characteristics as the one
>>we cannot use because it's full.
>>
>>NB: This affects the existing hostdev-scsi-autogen-address test
>>which would add a default ('lsi') SCSI controller for the various
>>scsi_host's that would create a controller for the hostdev.
>>
>
>Yet the change adds 'virtio-scsi'.
>
>>Signed-off-by: John Ferlan <jferlan at redhat.com>
>>---
>> src/conf/domain_conf.c                                    | 13 ++++++++++++-
>> tests/qemuxml2xmloutdata/hostdev-scsi-autogen-address.xml |  2 +-
>> 2 files changed, 13 insertions(+), 2 deletions(-)
>>
>>diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
>>index 66e21c4bd..61b4a0075 100644
>>--- a/src/conf/domain_conf.c
>>+++ b/src/conf/domain_conf.c
>>@@ -17689,12 +17689,22 @@ virDomainDefMaybeAddHostdevSCSIcontroller(virDomainDefPtr def)
>>     size_t i;
>>     int maxController = -1;
>>     virDomainHostdevDefPtr hostdev;
>>+    virDomainControllerModelSCSI model = -1;
>
>This declaration can be moved inside the if to reduce its scope. (I'm
>with Andrea on this [0])
>

Also, assigning -1 to an unsigned variable won't stick.

>>+    virDomainControllerModelSCSI newModel = -1;
>>
>>     for (i = 0; i < def->nhostdevs; i++) {
>>         hostdev = def->hostdevs[i];
>>         if (virHostdevIsSCSIDevice(hostdev) &&
>>             (int)hostdev->info->addr.drive.controller > maxController) {
>>             maxController = hostdev->info->addr.drive.controller;
>>+            /* We may be creating a new controller because this one is full.
>>+             * So let's grab the model from it and update the model we're
>>+             * going to add as long as this one isn't undefined. The premise
>>+             * being keeping the same controller model for all SCSI hostdevs. */
>>+            model = virDomainDeviceFindControllerModel(def, hostdev->info,
>>+                                                       VIR_DOMAIN_CONTROLLER_TYPE_SCSI);
>>+            if (model != -1)

This condition is always true according to my compiler.

Jan

>>+                newModel = model;
>>         }
>>     }
>>
>
>ACK
>
>Jan
>
>[0] https://www.redhat.com/archives/libvir-list/2017-December/msg00563.html



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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20180104/819343c5/attachment-0001.sig>


More information about the libvir-list mailing list