Remove upstream patches

OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=373
This commit is contained in:
James Fehlig 2014-05-12 21:34:48 +00:00 committed by Git OBS Bridge
parent df9dc08811
commit c01fd79075
2 changed files with 0 additions and 303 deletions

View File

@ -1,272 +0,0 @@
commit 0e0c1a7489a6a04c5060d0fe7fad6337ed98ec01
Author: Stefan Bader <stefan.bader@canonical.com>
Date: Thu Mar 27 17:55:02 2014 +0100
libxl: Use id from virDomainObj inside the driver
There is a domain id in the virDomain structure as well as in the
virDomainObj structure. While the former can become stale the latter
is kept up to date. So it is safer to always (virDomainObjPtr)->def->id
internally.
This will fix issues seen when managing Xen guests through libvirt from
virt-manager (not being able to get domain info after define or reboot).
This was caused both though libxlDomainGetInfo() only but there were
a lot of places that might potentially cause issues, too.
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
Index: libvirt-1.2.3/src/libxl/libxl_driver.c
===================================================================
--- libvirt-1.2.3.orig/src/libxl/libxl_driver.c
+++ libvirt-1.2.3/src/libxl/libxl_driver.c
@@ -770,10 +770,10 @@ libxlDomainSuspend(virDomainPtr dom)
priv = vm->privateData;
if (virDomainObjGetState(vm, NULL) != VIR_DOMAIN_PAUSED) {
- if (libxl_domain_pause(priv->ctx, dom->id) != 0) {
+ if (libxl_domain_pause(priv->ctx, vm->def->id) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to suspend domain '%d' with libxenlight"),
- dom->id);
+ vm->def->id);
goto endjob;
}
@@ -829,10 +829,10 @@ libxlDomainResume(virDomainPtr dom)
priv = vm->privateData;
if (virDomainObjGetState(vm, NULL) == VIR_DOMAIN_PAUSED) {
- if (libxl_domain_unpause(priv->ctx, dom->id) != 0) {
+ if (libxl_domain_unpause(priv->ctx, vm->def->id) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to resume domain '%d' with libxenlight"),
- dom->id);
+ vm->def->id);
goto endjob;
}
@@ -883,10 +883,10 @@ libxlDomainShutdownFlags(virDomainPtr do
}
priv = vm->privateData;
- if (libxl_domain_shutdown(priv->ctx, dom->id) != 0) {
+ if (libxl_domain_shutdown(priv->ctx, vm->def->id) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to shutdown domain '%d' with libxenlight"),
- dom->id);
+ vm->def->id);
goto cleanup;
}
@@ -930,10 +930,10 @@ libxlDomainReboot(virDomainPtr dom, unsi
}
priv = vm->privateData;
- if (libxl_domain_reboot(priv->ctx, dom->id) != 0) {
+ if (libxl_domain_reboot(priv->ctx, vm->def->id) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to reboot domain '%d' with libxenlight"),
- dom->id);
+ vm->def->id);
goto cleanup;
}
ret = 0;
@@ -974,7 +974,7 @@ libxlDomainDestroyFlags(virDomainPtr dom
priv = vm->privateData;
if (libxl_domain_destroy(priv->ctx, vm->def->id, NULL) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
- _("Failed to destroy domain '%d'"), dom->id);
+ _("Failed to destroy domain '%d'"), vm->def->id);
goto cleanup;
}
@@ -1105,10 +1105,10 @@ libxlDomainSetMemoryFlags(virDomainPtr d
if (flags & VIR_DOMAIN_MEM_LIVE) {
priv = vm->privateData;
- if (libxl_domain_setmaxmem(priv->ctx, dom->id, newmem) < 0) {
+ if (libxl_domain_setmaxmem(priv->ctx, vm->def->id, newmem) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to set maximum memory for domain '%d'"
- " with libxenlight"), dom->id);
+ " with libxenlight"), vm->def->id);
goto endjob;
}
}
@@ -1138,13 +1138,13 @@ libxlDomainSetMemoryFlags(virDomainPtr d
priv = vm->privateData;
/* Unlock virDomainObj while ballooning memory */
virObjectUnlock(vm);
- res = libxl_set_memory_target(priv->ctx, dom->id, newmem, 0,
+ res = libxl_set_memory_target(priv->ctx, vm->def->id, newmem, 0,
/* force */ 1);
virObjectLock(vm);
if (res < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to set memory for domain '%d'"
- " with libxenlight"), dom->id);
+ " with libxenlight"), vm->def->id);
goto endjob;
}
}
@@ -1202,9 +1202,10 @@ libxlDomainGetInfo(virDomainPtr dom, vir
info->memory = vm->def->mem.cur_balloon;
info->maxMem = vm->def->mem.max_balloon;
} else {
- if (libxl_domain_info(priv->ctx, &d_info, dom->id) != 0) {
+ if (libxl_domain_info(priv->ctx, &d_info, vm->def->id) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
- _("libxl_domain_info failed for domain '%d'"), dom->id);
+ _("libxl_domain_info failed for domain '%d'"),
+ vm->def->id);
goto cleanup;
}
info->cpuTime = d_info.cpu_time;
@@ -1483,11 +1484,11 @@ libxlDomainCoreDump(virDomainPtr dom, co
if (!(flags & VIR_DUMP_LIVE) &&
virDomainObjGetState(vm, NULL) == VIR_DOMAIN_RUNNING) {
- if (libxl_domain_pause(priv->ctx, dom->id) != 0) {
+ if (libxl_domain_pause(priv->ctx, vm->def->id) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Before dumping core, failed to suspend domain '%d'"
" with libxenlight"),
- dom->id);
+ vm->def->id);
goto endjob;
}
virDomainObjSetState(vm, VIR_DOMAIN_PAUSED, VIR_DOMAIN_PAUSED_DUMP);
@@ -1496,20 +1497,20 @@ libxlDomainCoreDump(virDomainPtr dom, co
/* Unlock virDomainObj while dumping core */
virObjectUnlock(vm);
- ret = libxl_domain_core_dump(priv->ctx, dom->id, to, NULL);
+ ret = libxl_domain_core_dump(priv->ctx, vm->def->id, to, NULL);
virObjectLock(vm);
if (ret != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to dump core of domain '%d' with libxenlight"),
- dom->id);
+ vm->def->id);
ret = -1;
goto unpause;
}
if (flags & VIR_DUMP_CRASH) {
- if (libxl_domain_destroy(priv->ctx, dom->id, NULL) < 0) {
+ if (libxl_domain_destroy(priv->ctx, vm->def->id, NULL) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
- _("Failed to destroy domain '%d'"), dom->id);
+ _("Failed to destroy domain '%d'"), vm->def->id);
goto unpause;
}
@@ -1524,10 +1525,10 @@ libxlDomainCoreDump(virDomainPtr dom, co
unpause:
if (virDomainObjIsActive(vm) && paused) {
- if (libxl_domain_unpause(priv->ctx, dom->id) != 0) {
+ if (libxl_domain_unpause(priv->ctx, vm->def->id) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("After dumping core, failed to resume domain '%d' with"
- " libxenlight"), dom->id);
+ " libxenlight"), vm->def->id);
} else {
virDomainObjSetState(vm, VIR_DOMAIN_RUNNING,
VIR_DOMAIN_RUNNING_UNPAUSED);
@@ -1786,19 +1787,19 @@ libxlDomainSetVcpusFlags(virDomainPtr do
break;
case VIR_DOMAIN_VCPU_LIVE:
- if (libxl_set_vcpuonline(priv->ctx, dom->id, &map) != 0) {
+ if (libxl_set_vcpuonline(priv->ctx, vm->def->id, &map) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to set vcpus for domain '%d'"
- " with libxenlight"), dom->id);
+ " with libxenlight"), vm->def->id);
goto endjob;
}
break;
case VIR_DOMAIN_VCPU_LIVE | VIR_DOMAIN_VCPU_CONFIG:
- if (libxl_set_vcpuonline(priv->ctx, dom->id, &map) != 0) {
+ if (libxl_set_vcpuonline(priv->ctx, vm->def->id, &map) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to set vcpus for domain '%d'"
- " with libxenlight"), dom->id);
+ " with libxenlight"), vm->def->id);
goto endjob;
}
def->vcpus = nvcpus;
@@ -1934,7 +1935,7 @@ libxlDomainPinVcpuFlags(virDomainPtr dom
libxlDomainObjPrivatePtr priv;
priv = vm->privateData;
- if (libxl_set_vcpuaffinity(priv->ctx, dom->id, vcpu, &map) != 0) {
+ if (libxl_set_vcpuaffinity(priv->ctx, vm->def->id, vcpu, &map) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to pin vcpu '%d' with libxenlight"),
vcpu);
@@ -2099,11 +2100,11 @@ libxlDomainGetVcpus(virDomainPtr dom, vi
}
priv = vm->privateData;
- if ((vcpuinfo = libxl_list_vcpu(priv->ctx, dom->id, &maxcpu,
+ if ((vcpuinfo = libxl_list_vcpu(priv->ctx, vm->def->id, &maxcpu,
&hostcpus)) == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to list vcpus for domain '%d' with libxenlight"),
- dom->id);
+ vm->def->id);
goto cleanup;
}
@@ -3608,7 +3609,7 @@ libxlDomainGetSchedulerType(virDomainPtr
default:
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to get scheduler id for domain '%d'"
- " with libxenlight"), dom->id);
+ " with libxenlight"), vm->def->id);
goto cleanup;
}
@@ -3659,10 +3660,10 @@ libxlDomainGetSchedulerParametersFlags(v
goto cleanup;
}
- if (libxl_domain_sched_params_get(priv->ctx, dom->id, &sc_info) != 0) {
+ if (libxl_domain_sched_params_get(priv->ctx, vm->def->id, &sc_info) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to get scheduler parameters for domain '%d'"
- " with libxenlight"), dom->id);
+ " with libxenlight"), vm->def->id);
goto cleanup;
}
@@ -3740,10 +3741,10 @@ libxlDomainSetSchedulerParametersFlags(v
goto endjob;
}
- if (libxl_domain_sched_params_get(priv->ctx, dom->id, &sc_info) != 0) {
+ if (libxl_domain_sched_params_get(priv->ctx, vm->def->id, &sc_info) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to get scheduler parameters for domain '%d'"
- " with libxenlight"), dom->id);
+ " with libxenlight"), vm->def->id);
goto endjob;
}
@@ -3756,10 +3757,10 @@ libxlDomainSetSchedulerParametersFlags(v
sc_info.cap = params[i].value.ui;
}
- if (libxl_domain_sched_params_set(priv->ctx, dom->id, &sc_info) != 0) {
+ if (libxl_domain_sched_params_set(priv->ctx, vm->def->id, &sc_info) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to set scheduler parameters for domain '%d'"
- " with libxenlight"), dom->id);
+ " with libxenlight"), vm->def->id);
goto endjob;
}

View File

@ -1,31 +0,0 @@
commit 7a1452f5334f98680187ae6d11fe2a49c1b38548
Author: Stefan Bader <stefan.bader@canonical.com>
Date: Thu Mar 27 17:55:03 2014 +0100
libxl: Set disk format for empty cdrom device
The XML config for a CDROM device can be without a source path,
indicating that there is no media present. Without this change
the libxl driver fails to start a guest in that case because
the libxl library checks for the LIBXL_DISK_FORMAT_EMPTY format
type and tries to stat the NULL pointer that gets passed on.
> libxl: error: libxl_device.c:265:libxl__device_disk_set_backend:
> Disk vdev=hdc failed to stat: (null): Bad address
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
Index: libvirt-1.2.3/src/libxl/libxl_conf.c
===================================================================
--- libvirt-1.2.3.orig/src/libxl/libxl_conf.c
+++ libvirt-1.2.3/src/libxl/libxl_conf.c
@@ -827,6 +827,9 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
x_disk->removable = 1;
x_disk->readwrite = !l_disk->readonly;
x_disk->is_cdrom = l_disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM ? 1 : 0;
+ /* An empty CDROM must have the empty format, otherwise libxl fails. */
+ if (x_disk->is_cdrom && !x_disk->pdev_path)
+ x_disk->format = LIBXL_DISK_FORMAT_EMPTY;
if (l_disk->transient) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("libxenlight does not support transient disks"));