Code review comment for lp:~smoser/curtin/trunk.lp1716028-hack-file-locking-in-qemu

Revision history for this message
Ryan Harper (raharper) wrote :

> I notice now that
> cls.mpath_args(cls.mpath_diskargs(target_disks + extra_disks + nvme_disks)
> is not really the same as waht we did before, which was effectively:
> cls.mpath_diskargs(target_disks) + cls.mpath_diskargs(extra_disks) +
> cls.mpath_diskargs(nvme_disks)
>
> the difference is really just in order, effectively
> new: [a,b,c] * 2 = [a, b, c, a, b, c]
> where before we had
> [a] * 2 + b * 2 + c * 2 = [a, a, b, b, c, c]
>
> it all should really come out the same just different order of -drive
> options/-device options.

You're right that the order is different, but I think you've got them backwards:

For the multi-list-join path:

cls.mpath_disks([a, b] + [c, d] + [e, f])

We used to get:
[a, b, a, b, c, d, c, d, e, f, e, f]

and with this new code we'll get:

[a, a, b, b, c, c, d, d, e, e, f, f]

Since we iterate over the combined list and multiply out each element of the list times the multiplier.

I *think* we'll be fine, specifically in the multipath case, the devices are paired by their serial number/model not by their placement on the PCI bus.

« Back to merge proposal