Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:11.4:Update
libvirt.import4712
xend-disk-order.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File xend-disk-order.patch of Package libvirt.import4712
Index: libvirt-0.8.8/src/xen/xend_internal.c =================================================================== --- libvirt-0.8.8.orig/src/xen/xend_internal.c +++ libvirt-0.8.8/src/xen/xend_internal.c @@ -1383,20 +1383,24 @@ xenDaemonParseSxprDisks(virDomainDefPtr const char *src = NULL; const char *dst = NULL; const char *mode = NULL; + int bootable; /* Again dealing with (vbd...) vs (tap ...) differences */ if (sexpr_lookup(node, "device/vbd")) { src = sexpr_node(node, "device/vbd/uname"); dst = sexpr_node(node, "device/vbd/dev"); mode = sexpr_node(node, "device/vbd/mode"); + bootable = sexpr_int(node, "device/vbd/bootable"); } else if (sexpr_lookup(node, "device/tap2")) { src = sexpr_node(node, "device/tap2/uname"); dst = sexpr_node(node, "device/tap2/dev"); mode = sexpr_node(node, "device/tap2/mode"); + bootable = sexpr_int(node, "device/tap2/bootable"); } else { src = sexpr_node(node, "device/tap/uname"); dst = sexpr_node(node, "device/tap/dev"); mode = sexpr_node(node, "device/tap/mode"); + bootable = sexpr_int(node, "device/tap/bootable"); } if (VIR_ALLOC(disk) < 0) @@ -1521,7 +1525,12 @@ xenDaemonParseSxprDisks(virDomainDefPtr if (VIR_REALLOC_N(def->disks, def->ndisks+1) < 0) goto no_memory; - def->disks[def->ndisks++] = disk; + if (bootable == 1 && def->ndisks > 0) { + memmove(def->disks + 1, def->disks, sizeof(def->disks) * def->ndisks); + def->disks[0] = disk; + def->ndisks++; + } else + def->disks[def->ndisks++] = disk; disk = NULL; } }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor