From: Peter Krempa Date: Tue, 14 Nov 2017 13:13:01 +0000 (+0100) Subject: qemu: command: Refactor logic when formatting -drive X-Git-Tag: v3.10.0-rc1~83 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=55a5d71825e9be210c8cf2411369f76065c678d6;p=thirdparty%2Flibvirt.git qemu: command: Refactor logic when formatting -drive Move all logic depending on whether we are solely formatting -drive (no -device along with it) into one block. --- diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index b53faadc15..36b8f3cb7f 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -1657,26 +1657,16 @@ qemuBuildDriveStr(virDomainDiskDefPtr disk, virQEMUCapsPtr qemuCaps) { virBuffer opt = VIR_BUFFER_INITIALIZER; - bool emitDeviceSyntax = qemuDiskBusNeedsDeviceArg(disk->bus); - - /* if we are using -device this will be checked elsewhere */ - if (!emitDeviceSyntax && - qemuCheckDiskConfig(disk, qemuCaps) < 0) - goto error; if (qemuBuildDriveSourceStr(disk, cfg, &opt, qemuCaps) < 0) goto error; - if (emitDeviceSyntax) - virBufferAddLit(&opt, "if=none"); - else - virBufferAsprintf(&opt, "if=%s", - virDomainDiskQEMUBusTypeToString(disk->bus)); - - if (emitDeviceSyntax) { + if (qemuDiskBusNeedsDeviceArg(disk->bus)) { char *drivealias = qemuAliasFromDisk(disk); if (!drivealias) goto error; + + virBufferAddLit(&opt, "if=none"); virBufferAsprintf(&opt, ",id=%s", drivealias); VIR_FREE(drivealias); } else { @@ -1687,6 +1677,13 @@ qemuBuildDriveStr(virDomainDiskDefPtr disk, _("unsupported disk type '%s'"), disk->dst); goto error; } + + /* if we are using -device this will be checked elsewhere */ + if (qemuCheckDiskConfig(disk, qemuCaps) < 0) + goto error; + + virBufferAsprintf(&opt, "if=%s", + virDomainDiskQEMUBusTypeToString(disk->bus)); virBufferAsprintf(&opt, ",index=%d", idx); }