提交 c1a98d88 编写于 作者: J Jiri Denemark

Fix order of disks and controllers

Commit 2d6adabd 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.
上级 3bb35a52
...@@ -5883,7 +5883,7 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps, ...@@ -5883,7 +5883,7 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps,
if (!disk) if (!disk)
goto error; goto error;
def->disks[def->ndisks++] = disk; virDomainDiskInsertPreAlloced(def, disk);
} }
VIR_FREE(nodes); VIR_FREE(nodes);
...@@ -5899,7 +5899,7 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps, ...@@ -5899,7 +5899,7 @@ static virDomainDefPtr virDomainDefParseXML(virCapsPtr caps,
if (!controller) if (!controller)
goto error; goto error;
def->controllers[def->ncontrollers++] = controller; virDomainControllerInsertPreAlloced(def, controller);
} }
VIR_FREE(nodes); VIR_FREE(nodes);
......
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M \ LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu \
pc -m 214 -smp 1 -nographic -nodefaults -monitor unix:/tmp/test-monitor,server,\ -S \
nowait -no-acpi -drive file=/dev/HostVG/QEMUGuest1,if=none,id=drive-ide0-0-0 \ -M pc \
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -drive \ -m 214 \
file=sheepdog:example.org:6000:image,if=none,id=drive-virtio-disk0 -device \ -smp 1 \
virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,\ -nographic \
bootindex=3 -drive file=/root/boot.iso,if=none,media=cdrom,id=drive-ide0-1-0 \ -nodefaults \
-device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,\ -monitor unix:/tmp/test-monitor,server,nowait \
bootindex=1 -drive file=/dev/null,if=none,id=drive-fdc0-0-1 -global \ -no-acpi \
isa-fdc.driveB=drive-fdc0-0-1 -global isa-fdc.bootindexB=4 -device \ -drive file=/dev/HostVG/QEMUGuest1,if=none,id=drive-ide0-0-0 \
virtio-net-pci,vlan=0,id=net0,mac=00:11:22:33:44:55,bus=pci.0,addr=0x3,\ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \
bootindex=2 -net user,vlan=0,name=hostnet0 -usb -device virtio-balloon-pci,\ -drive file=/root/boot.iso,if=none,media=cdrom,id=drive-ide0-1-0 \
id=balloon0,bus=pci.0,addr=0x5 -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 @@ ...@@ -18,6 +18,13 @@
<target dev='hda' bus='ide'/> <target dev='hda' bus='ide'/>
<address type='drive' controller='0' bus='0' unit='0'/> <address type='drive' controller='0' bus='0' unit='0'/>
</disk> </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'> <disk type='network' device='disk'>
<driver name='qemu' type='raw'/> <driver name='qemu' type='raw'/>
<source protocol='sheepdog' name='image'> <source protocol='sheepdog' name='image'>
...@@ -26,13 +33,6 @@ ...@@ -26,13 +33,6 @@
<target dev='vda' bus='virtio'/> <target dev='vda' bus='virtio'/>
<boot order='3'/> <boot order='3'/>
</disk> </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'> <disk type='file' device='floppy'>
<driver name='qemu' type='raw'/> <driver name='qemu' type='raw'/>
<source file='/dev/null'/> <source file='/dev/null'/>
......
...@@ -19,7 +19,7 @@ vnc = 1 ...@@ -19,7 +19,7 @@ vnc = 1
vncunused = 1 vncunused = 1
vnclisten = "127.0.0.1" vnclisten = "127.0.0.1"
vncpasswd = "123poi" 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" ] vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,model=e1000,type=ioemu" ]
parallel = "none" parallel = "none"
serial = "none" serial = "none"
......
...@@ -25,17 +25,17 @@ ...@@ -25,17 +25,17 @@
<source dev='/dev/HostVG/XenGuest2'/> <source dev='/dev/HostVG/XenGuest2'/>
<target dev='hda' bus='ide'/> <target dev='hda' bus='ide'/>
</disk> </disk>
<disk type='block' device='disk'>
<driver name='phy'/>
<source dev='/dev/HostVG/XenGuest&apos;&quot;'/>
<target dev='hdb' bus='ide'/>
</disk>
<disk type='file' device='cdrom'> <disk type='file' device='cdrom'>
<driver name='file'/> <driver name='file'/>
<source file='/root/boot.iso&amp;test'/> <source file='/root/boot.iso&amp;test'/>
<target dev='hdc' bus='ide'/> <target dev='hdc' bus='ide'/>
<readonly/> <readonly/>
</disk> </disk>
<disk type='block' device='disk'>
<driver name='phy'/>
<source dev='/dev/HostVG/XenGuest&apos;&quot;'/>
<target dev='hdb' bus='ide'/>
</disk>
<interface type='bridge'> <interface type='bridge'>
<mac address='00:16:3e:66:92:9c'/> <mac address='00:16:3e:66:92:9c'/>
<source bridge='xenbr1'/> <source bridge='xenbr1'/>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册