On 03/12/2012 09:13 PM, Paolo Bonzini wrote:
Il 12/03/2012 14:55, Osier Yang ha scritto:
> - if (!qemuCapsGet(qemuCaps, QEMU_CAPS_SCSI_DISK_CHANNEL)) {
> - if (disk->info.addr.drive.target> 7) {
> - qemuReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> - _("This QEMU doesn't support target
"
> - "greater than 7"));
> - goto error;
> - }
> + if ((disk->device != VIR_DOMAIN_DISK_DEVICE_LUN)) {
> + if (!qemuCapsGet(qemuCaps, QEMU_CAPS_SCSI_DISK_CHANNEL)) {
> + if (disk->info.addr.drive.target> 7) {
> + qemuReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> + _("This QEMU doesn't support target
"
> + "greater than 7"));
> + goto error;
> + }
>
> - if ((disk->info.addr.drive.bus !=
disk->info.addr.drive.unit)&&
> - (disk->info.addr.drive.bus != 0)) {
> - qemuReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> - _("This QEMU only supports both bus and
"
> - "unit equal to 0"));
> - goto error;
> + if ((disk->info.addr.drive.bus !=
disk->info.addr.drive.unit)&&
> + (disk->info.addr.drive.bus != 0)) {
> + qemuReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> + _("This QEMU only supports both bus and
"
> + "unit equal to 0"));
> + goto error;
> + }
> }
> + virBufferAddLit(&opt, "scsi-disk");
> + } else {
> + virBufferAddLit(&opt, "scsi-block");
> }
>
> - virBufferAddLit(&opt, "scsi-disk");
Why not the simpler:
- virBufferAddLit(&opt, "scsi-disk");
+ if (disk->device == VIR_DOMAIN_DISK_DEVICE_LUN)
+ virBufferAddLit(&opt, "scsi-disk");
+ else
+ virBufferAddLit(&opt, "scsi-block");
as in the case above for lsilogic? Am I missing something obvious?
The logic is same as yours, I didn't do any change on previous logic
(while scsi-disk.channel is not available) excepet the indentions.
Osier