mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-23 02:04:16 +03:00
Fix order of disks and controllers
Commit 2d6adabd53c8f1858191d521dc9b4948d1205955 replaced qsorting disk and controller devices with inserting them at the right position. That was to fix unnecessary reordering of devices. However, when parsing domain XML devices are just taken in the order in which they appear in the XML since. Use the correct insertion algorithm to honor device target.
This commit is contained in:
parent
3bb35a52be
commit
c1a98d8825
@ -5883,7 +5883,7 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps,
|
||||
if (!disk)
|
||||
goto error;
|
||||
|
||||
def->disks[def->ndisks++] = disk;
|
||||
virDomainDiskInsertPreAlloced(def, disk);
|
||||
}
|
||||
VIR_FREE(nodes);
|
||||
|
||||
@ -5899,7 +5899,7 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps,
|
||||
if (!controller)
|
||||
goto error;
|
||||
|
||||
def->controllers[def->ncontrollers++] = controller;
|
||||
virDomainControllerInsertPreAlloced(def, controller);
|
||||
}
|
||||
VIR_FREE(nodes);
|
||||
|
||||
|
@ -1,13 +1,22 @@
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M \
|
||||
pc -m 214 -smp 1 -nographic -nodefaults -monitor unix:/tmp/test-monitor,server,\
|
||||
nowait -no-acpi -drive file=/dev/HostVG/QEMUGuest1,if=none,id=drive-ide0-0-0 \
|
||||
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -drive \
|
||||
file=sheepdog:example.org:6000:image,if=none,id=drive-virtio-disk0 -device \
|
||||
virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,\
|
||||
bootindex=3 -drive file=/root/boot.iso,if=none,media=cdrom,id=drive-ide0-1-0 \
|
||||
-device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,\
|
||||
bootindex=1 -drive file=/dev/null,if=none,id=drive-fdc0-0-1 -global \
|
||||
isa-fdc.driveB=drive-fdc0-0-1 -global isa-fdc.bootindexB=4 -device \
|
||||
virtio-net-pci,vlan=0,id=net0,mac=00:11:22:33:44:55,bus=pci.0,addr=0x3,\
|
||||
bootindex=2 -net user,vlan=0,name=hostnet0 -usb -device virtio-balloon-pci,\
|
||||
id=balloon0,bus=pci.0,addr=0x5
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu \
|
||||
-S \
|
||||
-M pc \
|
||||
-m 214 \
|
||||
-smp 1 \
|
||||
-nographic \
|
||||
-nodefaults \
|
||||
-monitor unix:/tmp/test-monitor,server,nowait \
|
||||
-no-acpi \
|
||||
-drive file=/dev/HostVG/QEMUGuest1,if=none,id=drive-ide0-0-0 \
|
||||
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
|
||||
-drive file=/root/boot.iso,if=none,media=cdrom,id=drive-ide0-1-0 \
|
||||
-device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=1 \
|
||||
-drive file=sheepdog:example.org:6000:image,if=none,id=drive-virtio-disk0 \
|
||||
-device virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=3 \
|
||||
-drive file=/dev/null,if=none,id=drive-fdc0-0-1 \
|
||||
-global isa-fdc.driveB=drive-fdc0-0-1 \
|
||||
-global isa-fdc.bootindexB=4 \
|
||||
-device virtio-net-pci,vlan=0,id=net0,mac=00:11:22:33:44:55,bus=pci.0,addr=0x3,bootindex=2 \
|
||||
-net user,vlan=0,name=hostnet0 \
|
||||
-usb \
|
||||
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5
|
||||
|
@ -18,6 +18,13 @@
|
||||
<target dev='hda' bus='ide'/>
|
||||
<address type='drive' controller='0' bus='0' unit='0'/>
|
||||
</disk>
|
||||
<disk type='file' device='cdrom'>
|
||||
<source file='/root/boot.iso'/>
|
||||
<target dev='hdc' bus='ide'/>
|
||||
<boot order='1'/>
|
||||
<readonly/>
|
||||
<address type='drive' controller='0' bus='1' unit='0'/>
|
||||
</disk>
|
||||
<disk type='network' device='disk'>
|
||||
<driver name='qemu' type='raw'/>
|
||||
<source protocol='sheepdog' name='image'>
|
||||
@ -26,13 +33,6 @@
|
||||
<target dev='vda' bus='virtio'/>
|
||||
<boot order='3'/>
|
||||
</disk>
|
||||
<disk type='file' device='cdrom'>
|
||||
<source file='/root/boot.iso'/>
|
||||
<target dev='hdc' bus='ide'/>
|
||||
<boot order='1'/>
|
||||
<readonly/>
|
||||
<address type='drive' controller='0' bus='1' unit='0'/>
|
||||
</disk>
|
||||
<disk type='file' device='floppy'>
|
||||
<driver name='qemu' type='raw'/>
|
||||
<source file='/dev/null'/>
|
||||
|
@ -19,7 +19,7 @@ vnc = 1
|
||||
vncunused = 1
|
||||
vnclisten = "127.0.0.1"
|
||||
vncpasswd = "123poi"
|
||||
disk = [ "phy:/dev/HostVG/XenGuest2,hda,w", "file:/root/boot.iso&test,hdc:cdrom,r", """phy:/dev/HostVG/XenGuest'",hdb,w""" ]
|
||||
disk = [ "phy:/dev/HostVG/XenGuest2,hda,w", """phy:/dev/HostVG/XenGuest'",hdb,w""", "file:/root/boot.iso&test,hdc:cdrom,r" ]
|
||||
vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,model=e1000,type=ioemu" ]
|
||||
parallel = "none"
|
||||
serial = "none"
|
||||
|
@ -25,17 +25,17 @@
|
||||
<source dev='/dev/HostVG/XenGuest2'/>
|
||||
<target dev='hda' bus='ide'/>
|
||||
</disk>
|
||||
<disk type='block' device='disk'>
|
||||
<driver name='phy'/>
|
||||
<source dev='/dev/HostVG/XenGuest'"'/>
|
||||
<target dev='hdb' bus='ide'/>
|
||||
</disk>
|
||||
<disk type='file' device='cdrom'>
|
||||
<driver name='file'/>
|
||||
<source file='/root/boot.iso&test'/>
|
||||
<target dev='hdc' bus='ide'/>
|
||||
<readonly/>
|
||||
</disk>
|
||||
<disk type='block' device='disk'>
|
||||
<driver name='phy'/>
|
||||
<source dev='/dev/HostVG/XenGuest'"'/>
|
||||
<target dev='hdb' bus='ide'/>
|
||||
</disk>
|
||||
<interface type='bridge'>
|
||||
<mac address='00:16:3e:66:92:9c'/>
|
||||
<source bridge='xenbr1'/>
|
||||
|
Loading…
x
Reference in New Issue
Block a user