提交 10f5ad9b 编写于 作者: P Peter Krempa

qemuBuildDiskCommandLine: Clarify logic around building -device for disks

For 'SD' disks and floppies in the pre-blockdev era we don't format
-device. Extract the logic so that it's more clear and add comments.
Signed-off-by: NPeter Krempa <pkrempa@redhat.com>
Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
上级 cc4a277d
......@@ -2158,20 +2158,26 @@ qemuBuildDiskCommandLine(virCommandPtr cmd,
if (qemuBuildDiskSourceCommandLine(cmd, disk, qemuCaps) < 0)
return -1;
if (!qemuDiskBusIsSD(disk->bus)) {
if (disk->bus != VIR_DOMAIN_DISK_BUS_FDC ||
virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV)) {
if (qemuCommandAddExtDevice(cmd, &disk->info) < 0)
return -1;
/* SD cards are currently instantiated via -drive if=sd, so the -device
* part must be skipped */
if (qemuDiskBusIsSD(disk->bus))
return 0;
virCommandAddArg(cmd, "-device");
/* floppy devices are instantiated via -drive ...,if=none and bound to the
* controller via -global isa-fdc.driveA/B options in the pre-blockdev era */
if (disk->bus == VIR_DOMAIN_DISK_BUS_FDC &&
!virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV))
return 0;
if (!(optstr = qemuBuildDiskDeviceStr(def, disk, bootindex,
qemuCaps)))
return -1;
virCommandAddArg(cmd, optstr);
}
}
if (qemuCommandAddExtDevice(cmd, &disk->info) < 0)
return -1;
virCommandAddArg(cmd, "-device");
if (!(optstr = qemuBuildDiskDeviceStr(def, disk, bootindex,
qemuCaps)))
return -1;
virCommandAddArg(cmd, optstr);
return 0;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册