mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-21 20:15:17 +00:00
Fix disk ordering and add target duplication checking when parsing domain xml.
This commit is contained in:
parent
53738f83a5
commit
34b1a03402
@ -1,7 +1,9 @@
|
||||
Wed Sep 3 14:51:03 CEST 2008 Daniel Veillard <veillard@redhat.com>
|
||||
Wed Sep 3 09:58:00 EST 2008 Cole Robinson <crobinso@redhat.com>
|
||||
|
||||
* src/qemu_driver.c: patch from Cole Robinson to avoid a segfault
|
||||
on KVM CD eject
|
||||
* src/domain_conf.c: fix disk device ordering when parsing domain
|
||||
xml. check for disk target duplicates as well.
|
||||
* tests/xml2sexprdata/xml2sexpr-fv-v2.sexpr: fix for disk ordering
|
||||
* tests/xml2sexprdata/xml2sexpr-fv-vncunused.sexpr: fix for disk ordering
|
||||
|
||||
Wed Sep 3 14:37:06 CEST 2008 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
|
@ -1949,19 +1949,27 @@ static virDomainDefPtr virDomainDefParseXML(virConnectPtr conn,
|
||||
goto error;
|
||||
|
||||
/* Maintain list in sorted order according to target device name */
|
||||
if (def->disks == NULL) {
|
||||
disk->next = def->disks;
|
||||
def->disks = disk;
|
||||
} else {
|
||||
virDomainDiskDefPtr ptr = def->disks;
|
||||
while (ptr) {
|
||||
if (!ptr->next || virDomainDiskCompare(disk, ptr->next) < 0) {
|
||||
disk->next = ptr->next;
|
||||
ptr->next = disk;
|
||||
break;
|
||||
}
|
||||
ptr = ptr->next;
|
||||
virDomainDiskDefPtr ptr = def->disks;
|
||||
virDomainDiskDefPtr *prev = &(def->disks);
|
||||
while (ptr) {
|
||||
if (STREQ(disk->dst, ptr->dst)) {
|
||||
virDomainReportError(conn, VIR_ERR_INTERNAL_ERROR,
|
||||
_("duplicate disk target '%s'"),
|
||||
disk->dst);
|
||||
goto error;
|
||||
}
|
||||
if (virDomainDiskCompare(disk, ptr) < 0) {
|
||||
disk->next = ptr;
|
||||
*prev = disk;
|
||||
break;
|
||||
}
|
||||
prev = &(ptr->next);
|
||||
ptr = ptr->next;
|
||||
}
|
||||
|
||||
if (!ptr) {
|
||||
disk->next = ptr;
|
||||
*prev = disk;
|
||||
}
|
||||
}
|
||||
VIR_FREE(nodes);
|
||||
|
@ -1 +1 @@
|
||||
(vm (name 'fvtest')(memory 400)(maxmem 400)(vcpus 1)(uuid 'b5d70dd2-75cd-aca5-1776-9660b059d8bc')(on_poweroff 'destroy')(on_reboot 'restart')(on_crash 'restart')(image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)(acpi 1)(usb 1)(parallel none)(serial none)(device_model '/usr/lib64/xen/bin/qemu-dm')(vnc 1)(vncunused 0)(vncdisplay 17)(keymap 'ja')))(device (vbd (dev 'hdc:cdrom')(uname 'file:/root/boot.iso')(mode 'r')))(device (vbd (dev 'hda:disk')(uname 'file:/root/foo.img')(mode 'w')))(device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')(type ioemu))))
|
||||
(vm (name 'fvtest')(memory 400)(maxmem 400)(vcpus 1)(uuid 'b5d70dd2-75cd-aca5-1776-9660b059d8bc')(on_poweroff 'destroy')(on_reboot 'restart')(on_crash 'restart')(image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)(acpi 1)(usb 1)(parallel none)(serial none)(device_model '/usr/lib64/xen/bin/qemu-dm')(vnc 1)(vncunused 0)(vncdisplay 17)(keymap 'ja')))(device (vbd (dev 'hda:disk')(uname 'file:/root/foo.img')(mode 'w')))(device (vbd (dev 'hdc:cdrom')(uname 'file:/root/boot.iso')(mode 'r')))(device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')(type ioemu))))
|
@ -1 +1 @@
|
||||
(vm (name 'fvtest')(memory 400)(maxmem 400)(vcpus 1)(uuid 'b5d70dd2-75cd-aca5-1776-9660b059d8bc')(on_poweroff 'destroy')(on_reboot 'restart')(on_crash 'restart')(image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)(acpi 1)(usb 1)(parallel none)(serial none)(device_model '/usr/lib64/xen/bin/qemu-dm')(vnc 1)(vncunused 1)(keymap 'ja')))(device (vbd (dev 'hdc:cdrom')(uname 'file:/root/boot.iso')(mode 'r')))(device (vbd (dev 'hda:disk')(uname 'file:/root/foo.img')(mode 'w')))(device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')(type ioemu))))
|
||||
(vm (name 'fvtest')(memory 400)(maxmem 400)(vcpus 1)(uuid 'b5d70dd2-75cd-aca5-1776-9660b059d8bc')(on_poweroff 'destroy')(on_reboot 'restart')(on_crash 'restart')(image (hvm (kernel '/usr/lib/xen/boot/hvmloader')(vcpus 1)(boot c)(acpi 1)(usb 1)(parallel none)(serial none)(device_model '/usr/lib64/xen/bin/qemu-dm')(vnc 1)(vncunused 1)(keymap 'ja')))(device (vbd (dev 'hda:disk')(uname 'file:/root/foo.img')(mode 'w')))(device (vbd (dev 'hdc:cdrom')(uname 'file:/root/boot.iso')(mode 'r')))(device (vif (mac '00:16:3e:1b:b1:47')(bridge 'xenbr0')(script 'vif-bridge')(type ioemu))))
|
Loading…
x
Reference in New Issue
Block a user