[libvirt] [PATCH] Fix floppy definition for HVM guests

# HG changeset patch # User john.levon@sun.com # Date 1233177786 28800 # Node ID 2b9283e83c20ca2a18f2cafcb963ce254e11dbb4 # Parent 9a9bd34ec485ebaf4c3861bdfffd2953fd91a1fc Fix floppy definition for HVM guests Code was missing to define floppy disks for Xen HVM guests. Refuse to attach disks that aren't supported by direct attach. Signed-off-by: John Levon <john.levon@sun.com> diff --git a/src/xend_internal.c b/src/xend_internal.c --- a/src/xend_internal.c +++ b/src/xend_internal.c @@ -5018,14 +5018,26 @@ xenDaemonFormatSxprDisk(virConnectPtr co * under the hvm (image (os)) block */ if (hvm && - def->device == VIR_DOMAIN_DISK_DEVICE_FLOPPY) + def->device == VIR_DOMAIN_DISK_DEVICE_FLOPPY) { + if (isAttach) { + virXendError(conn, VIR_ERR_INVALID_ARG, + _("Cannot directly attach floppy %s"), def->src); + return -1; + } return 0; + } /* Xend <= 3.0.2 doesn't include cdrom config here */ if (hvm && def->device == VIR_DOMAIN_DISK_DEVICE_CDROM && - xendConfigVersion == 1) + xendConfigVersion == 1) { + if (isAttach) { + virXendError(conn, VIR_ERR_INVALID_ARG, + _("Cannot directly attach CDROM %s"), def->src); + return -1; + } return 0; + } if (!isAttach) virBufferAddLit(buf, "(device "); @@ -5374,17 +5386,29 @@ xenDaemonFormatSxpr(virConnectPtr conn, } virBufferVSprintf(&buf, "(boot %s)", bootorder); - /* get the cdrom device file */ - /* Only XenD <= 3.0.2 wants cdrom config here */ - if (xendConfigVersion == 1) { - for (i = 0 ; i < def->ndisks ; i++) { - if (def->disks[i]->type == VIR_DOMAIN_DISK_DEVICE_CDROM && - STREQ(def->disks[i]->dst, "hdc") && - def->disks[i]->src) { - virBufferVSprintf(&buf, "(cdrom '%s')", - def->disks[i]->src); + /* some disk devices are defined here */ + for (i = 0 ; i < def->ndisks ; i++) { + switch (def->disks[i]->device) { + case VIR_DOMAIN_DISK_DEVICE_CDROM: + /* Only xend <= 3.0.2 wants cdrom config here */ + if (xendConfigVersion != 1) break; - } + if (!STREQ(def->disks[i]->dst, "hdc") || + def->disks[i]->src == NULL) + break; + + virBufferVSprintf(&buf, "(cdrom '%s')", + def->disks[i]->src); + break; + + case VIR_DOMAIN_DISK_DEVICE_FLOPPY: + /* all xend versions define floppies here */ + virBufferVSprintf(&buf, "(%s '%s')", def->disks[i]->dst, + def->disks[i]->src); + break; + + default: + break; } }

On Wed, Jan 28, 2009 at 01:23:39PM -0800, john.levon@sun.com wrote:
# HG changeset patch # User john.levon@sun.com # Date 1233177786 28800 # Node ID 2b9283e83c20ca2a18f2cafcb963ce254e11dbb4 # Parent 9a9bd34ec485ebaf4c3861bdfffd2953fd91a1fc Fix floppy definition for HVM guests
Code was missing to define floppy disks for Xen HVM guests. Refuse to attach disks that aren't supported by direct attach.
Signed-off-by: John Levon <john.levon@sun.com>
ACK. I see we're also missing floppy disk support for the old XM driver too. I could have sworn I'd seen a patch for this before though, so I'll try and find that code for XM. Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|

Daniel P. Berrange wrote:
On Wed, Jan 28, 2009 at 01:23:39PM -0800, john.levon@sun.com wrote:
# HG changeset patch # User john.levon@sun.com # Date 1233177786 28800 # Node ID 2b9283e83c20ca2a18f2cafcb963ce254e11dbb4 # Parent 9a9bd34ec485ebaf4c3861bdfffd2953fd91a1fc Fix floppy definition for HVM guests
Code was missing to define floppy disks for Xen HVM guests. Refuse to attach disks that aren't supported by direct attach.
Signed-off-by: John Levon <john.levon@sun.com>
ACK.
I see we're also missing floppy disk support for the old XM driver too. I could have sworn I'd seen a patch for this before though, so I'll try and find that code for XM.
Yes, I long ago posted a patch for XM HVM floppy support. The problem was that at the time, something in that area was being re-factored, so we decided to defer it. I just never got back to it. It should be simple enough to dig up my patch and massage it in, though; the patch was fairly simple. -- Chris Lalancette
participants (3)
-
Chris Lalancette
-
Daniel P. Berrange
-
john.levon@sun.com