forked from pool/libvirt
- libxl: Set disk format for empty cdrom device
0e0c1a74-domid-fix.patch, 7a1452f5-libxl-empty-cdrom.patch bnc#872517 OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=365
This commit is contained in:
parent
6cc2de8c8b
commit
52a7fec2c4
272
0e0c1a74-domid-fix.patch
Normal file
272
0e0c1a74-domid-fix.patch
Normal file
@ -0,0 +1,272 @@
|
|||||||
|
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;
|
||||||
|
}
|
||||||
|
|
31
7a1452f5-libxl-empty-cdrom.patch
Normal file
31
7a1452f5-libxl-empty-cdrom.patch
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
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"));
|
@ -8,11 +8,11 @@ uses the 'device_configure' RPC.
|
|||||||
This patch changes the xend driver to always call 'device_configure' for
|
This patch changes the xend driver to always call 'device_configure' for
|
||||||
PCI devices to be consistent with the usage in the xen tools.
|
PCI devices to be consistent with the usage in the xen tools.
|
||||||
|
|
||||||
Index: libvirt-1.2.2/src/xen/xend_internal.c
|
Index: libvirt-1.2.3/src/xen/xend_internal.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-1.2.2.orig/src/xen/xend_internal.c
|
--- libvirt-1.2.3.orig/src/xen/xend_internal.c
|
||||||
+++ libvirt-1.2.2/src/xen/xend_internal.c
|
+++ libvirt-1.2.3/src/xen/xend_internal.c
|
||||||
@@ -2217,6 +2217,7 @@ xenDaemonAttachDeviceFlags(virConnectPtr
|
@@ -2219,6 +2219,7 @@ xenDaemonAttachDeviceFlags(virConnectPtr
|
||||||
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
||||||
char class[8], ref[80];
|
char class[8], ref[80];
|
||||||
char *target = NULL;
|
char *target = NULL;
|
||||||
@ -20,7 +20,7 @@ Index: libvirt-1.2.2/src/xen/xend_internal.c
|
|||||||
|
|
||||||
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1);
|
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1);
|
||||||
|
|
||||||
@@ -2315,8 +2316,18 @@ xenDaemonAttachDeviceFlags(virConnectPtr
|
@@ -2317,8 +2318,18 @@ xenDaemonAttachDeviceFlags(virConnectPtr
|
||||||
}
|
}
|
||||||
|
|
||||||
sexpr = virBufferContentAndReset(&buf);
|
sexpr = virBufferContentAndReset(&buf);
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
Index: libvirt-1.2.2/src/lxc/lxc_container.c
|
Index: libvirt-1.2.3/src/lxc/lxc_container.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-1.2.2.orig/src/lxc/lxc_container.c
|
--- libvirt-1.2.3.orig/src/lxc/lxc_container.c
|
||||||
+++ libvirt-1.2.2/src/lxc/lxc_container.c
|
+++ libvirt-1.2.3/src/lxc/lxc_container.c
|
||||||
@@ -162,12 +162,19 @@ int lxcContainerHasReboot(void)
|
@@ -164,12 +164,19 @@ int lxcContainerHasReboot(void)
|
||||||
VIR_FREE(buf);
|
VIR_FREE(buf);
|
||||||
cmd = v ? LINUX_REBOOT_CMD_CAD_ON : LINUX_REBOOT_CMD_CAD_OFF;
|
cmd = v ? LINUX_REBOOT_CMD_CAD_ON : LINUX_REBOOT_CMD_CAD_OFF;
|
||||||
|
|
||||||
@ -22,7 +22,7 @@ Index: libvirt-1.2.2/src/lxc/lxc_container.c
|
|||||||
VIR_FREE(stack);
|
VIR_FREE(stack);
|
||||||
if (cpid < 0) {
|
if (cpid < 0) {
|
||||||
virReportSystemError(errno, "%s",
|
virReportSystemError(errno, "%s",
|
||||||
@@ -2004,6 +2011,9 @@ int lxcContainerStart(virDomainDefPtr de
|
@@ -2007,6 +2014,9 @@ int lxcContainerStart(virDomainDefPtr de
|
||||||
.handshakefd = handshakefd
|
.handshakefd = handshakefd
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ Index: libvirt-1.2.2/src/lxc/lxc_container.c
|
|||||||
/* allocate a stack for the container */
|
/* allocate a stack for the container */
|
||||||
if (VIR_ALLOC_N(stack, stacksize) < 0)
|
if (VIR_ALLOC_N(stack, stacksize) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
@@ -2029,7 +2039,11 @@ int lxcContainerStart(virDomainDefPtr de
|
@@ -2032,7 +2042,11 @@ int lxcContainerStart(virDomainDefPtr de
|
||||||
cflags |= CLONE_NEWNET;
|
cflags |= CLONE_NEWNET;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -44,7 +44,7 @@ Index: libvirt-1.2.2/src/lxc/lxc_container.c
|
|||||||
VIR_FREE(stack);
|
VIR_FREE(stack);
|
||||||
VIR_DEBUG("clone() completed, new container PID is %d", pid);
|
VIR_DEBUG("clone() completed, new container PID is %d", pid);
|
||||||
|
|
||||||
@@ -2063,12 +2077,19 @@ int lxcContainerAvailable(int features)
|
@@ -2066,12 +2080,19 @@ int lxcContainerAvailable(int features)
|
||||||
if (features & LXC_CONTAINER_FEATURE_NET)
|
if (features & LXC_CONTAINER_FEATURE_NET)
|
||||||
flags |= CLONE_NEWNET;
|
flags |= CLONE_NEWNET;
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
Adjust libvirt-guests init files to conform to SUSE standards
|
Adjust libvirt-guests init files to conform to SUSE standards
|
||||||
|
|
||||||
Index: libvirt-1.2.2/tools/libvirt-guests.init.in
|
Index: libvirt-1.2.3/tools/libvirt-guests.init.in
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-1.2.2.orig/tools/libvirt-guests.init.in
|
--- libvirt-1.2.3.orig/tools/libvirt-guests.init.in
|
||||||
+++ libvirt-1.2.2/tools/libvirt-guests.init.in
|
+++ libvirt-1.2.3/tools/libvirt-guests.init.in
|
||||||
@@ -3,15 +3,15 @@
|
@@ -3,15 +3,15 @@
|
||||||
# the following is the LSB init header
|
# the following is the LSB init header
|
||||||
#
|
#
|
||||||
@ -28,10 +28,10 @@ Index: libvirt-1.2.2/tools/libvirt-guests.init.in
|
|||||||
### END INIT INFO
|
### END INIT INFO
|
||||||
|
|
||||||
# the following is chkconfig init header
|
# the following is chkconfig init header
|
||||||
Index: libvirt-1.2.2/tools/libvirt-guests.sh.in
|
Index: libvirt-1.2.3/tools/libvirt-guests.sh.in
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-1.2.2.orig/tools/libvirt-guests.sh.in
|
--- libvirt-1.2.3.orig/tools/libvirt-guests.sh.in
|
||||||
+++ libvirt-1.2.2/tools/libvirt-guests.sh.in
|
+++ libvirt-1.2.3/tools/libvirt-guests.sh.in
|
||||||
@@ -16,14 +16,13 @@
|
@@ -16,14 +16,13 @@
|
||||||
# License along with this library. If not, see
|
# License along with this library. If not, see
|
||||||
# <http://www.gnu.org/licenses/>.
|
# <http://www.gnu.org/licenses/>.
|
||||||
@ -189,10 +189,10 @@ Index: libvirt-1.2.2/tools/libvirt-guests.sh.in
|
|||||||
esac
|
esac
|
||||||
-exit $RETVAL
|
-exit $RETVAL
|
||||||
+rc_exit
|
+rc_exit
|
||||||
Index: libvirt-1.2.2/tools/libvirt-guests.sysconf
|
Index: libvirt-1.2.3/tools/libvirt-guests.sysconf
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-1.2.2.orig/tools/libvirt-guests.sysconf
|
--- libvirt-1.2.3.orig/tools/libvirt-guests.sysconf
|
||||||
+++ libvirt-1.2.2/tools/libvirt-guests.sysconf
|
+++ libvirt-1.2.3/tools/libvirt-guests.sysconf
|
||||||
@@ -1,19 +1,29 @@
|
@@ -1,19 +1,29 @@
|
||||||
+## Path: System/Virtualization/libvirt-guests
|
+## Path: System/Virtualization/libvirt-guests
|
||||||
+
|
+
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: libvirt-1.2.2/configure.ac
|
Index: libvirt-1.2.3/configure.ac
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-1.2.2.orig/configure.ac
|
--- libvirt-1.2.3.orig/configure.ac
|
||||||
+++ libvirt-1.2.2/configure.ac
|
+++ libvirt-1.2.3/configure.ac
|
||||||
@@ -231,6 +231,7 @@ LIBVIRT_CHECK_FUSE
|
@@ -231,6 +231,7 @@ LIBVIRT_CHECK_FUSE
|
||||||
LIBVIRT_CHECK_GLUSTER
|
LIBVIRT_CHECK_GLUSTER
|
||||||
LIBVIRT_CHECK_HAL
|
LIBVIRT_CHECK_HAL
|
||||||
@ -10,7 +10,7 @@ Index: libvirt-1.2.2/configure.ac
|
|||||||
LIBVIRT_CHECK_NUMACTL
|
LIBVIRT_CHECK_NUMACTL
|
||||||
LIBVIRT_CHECK_OPENWSMAN
|
LIBVIRT_CHECK_OPENWSMAN
|
||||||
LIBVIRT_CHECK_PCIACCESS
|
LIBVIRT_CHECK_PCIACCESS
|
||||||
@@ -2368,11 +2369,12 @@ if test "$with_libvirtd" = "no" ; then
|
@@ -2374,11 +2375,12 @@ if test "$with_libvirtd" = "no" ; then
|
||||||
with_interface=no
|
with_interface=no
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ Index: libvirt-1.2.2/configure.ac
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
if test "$with_interface" = "yes" ; then
|
if test "$with_interface" = "yes" ; then
|
||||||
@@ -2766,6 +2768,7 @@ LIBVIRT_RESULT_FUSE
|
@@ -2772,6 +2774,7 @@ LIBVIRT_RESULT_FUSE
|
||||||
LIBVIRT_RESULT_GLUSTER
|
LIBVIRT_RESULT_GLUSTER
|
||||||
LIBVIRT_RESULT_HAL
|
LIBVIRT_RESULT_HAL
|
||||||
LIBVIRT_RESULT_NETCF
|
LIBVIRT_RESULT_NETCF
|
||||||
@ -34,11 +34,11 @@ Index: libvirt-1.2.2/configure.ac
|
|||||||
LIBVIRT_RESULT_NUMACTL
|
LIBVIRT_RESULT_NUMACTL
|
||||||
LIBVIRT_RESULT_OPENWSMAN
|
LIBVIRT_RESULT_OPENWSMAN
|
||||||
LIBVIRT_RESULT_PCIACCESS
|
LIBVIRT_RESULT_PCIACCESS
|
||||||
Index: libvirt-1.2.2/src/Makefile.am
|
Index: libvirt-1.2.3/src/Makefile.am
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-1.2.2.orig/src/Makefile.am
|
--- libvirt-1.2.3.orig/src/Makefile.am
|
||||||
+++ libvirt-1.2.2/src/Makefile.am
|
+++ libvirt-1.2.3/src/Makefile.am
|
||||||
@@ -801,6 +801,10 @@ if WITH_NETCF
|
@@ -807,6 +807,10 @@ if WITH_NETCF
|
||||||
INTERFACE_DRIVER_SOURCES += \
|
INTERFACE_DRIVER_SOURCES += \
|
||||||
interface/interface_backend_netcf.c
|
interface/interface_backend_netcf.c
|
||||||
endif WITH_NETCF
|
endif WITH_NETCF
|
||||||
@ -49,7 +49,7 @@ Index: libvirt-1.2.2/src/Makefile.am
|
|||||||
if WITH_UDEV
|
if WITH_UDEV
|
||||||
INTERFACE_DRIVER_SOURCES += \
|
INTERFACE_DRIVER_SOURCES += \
|
||||||
interface/interface_backend_udev.c
|
interface/interface_backend_udev.c
|
||||||
@@ -1386,10 +1390,15 @@ if WITH_NETCF
|
@@ -1396,10 +1400,15 @@ if WITH_NETCF
|
||||||
libvirt_driver_interface_la_CFLAGS += $(NETCF_CFLAGS)
|
libvirt_driver_interface_la_CFLAGS += $(NETCF_CFLAGS)
|
||||||
libvirt_driver_interface_la_LIBADD += $(NETCF_LIBS)
|
libvirt_driver_interface_la_LIBADD += $(NETCF_LIBS)
|
||||||
else ! WITH_NETCF
|
else ! WITH_NETCF
|
||||||
@ -65,11 +65,11 @@ Index: libvirt-1.2.2/src/Makefile.am
|
|||||||
endif ! WITH_NETCF
|
endif ! WITH_NETCF
|
||||||
if WITH_DRIVER_MODULES
|
if WITH_DRIVER_MODULES
|
||||||
libvirt_driver_interface_la_LIBADD += ../gnulib/lib/libgnu.la
|
libvirt_driver_interface_la_LIBADD += ../gnulib/lib/libgnu.la
|
||||||
Index: libvirt-1.2.2/tools/virsh.c
|
Index: libvirt-1.2.3/tools/virsh.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-1.2.2.orig/tools/virsh.c
|
--- libvirt-1.2.3.orig/tools/virsh.c
|
||||||
+++ libvirt-1.2.2/tools/virsh.c
|
+++ libvirt-1.2.3/tools/virsh.c
|
||||||
@@ -3209,6 +3209,8 @@ vshShowVersion(vshControl *ctl ATTRIBUTE
|
@@ -3251,6 +3251,8 @@ vshShowVersion(vshControl *ctl ATTRIBUTE
|
||||||
vshPrint(ctl, " Interface");
|
vshPrint(ctl, " Interface");
|
||||||
# if defined(WITH_NETCF)
|
# if defined(WITH_NETCF)
|
||||||
vshPrint(ctl, " netcf");
|
vshPrint(ctl, " netcf");
|
||||||
@ -78,10 +78,10 @@ Index: libvirt-1.2.2/tools/virsh.c
|
|||||||
# elif defined(WITH_UDEV)
|
# elif defined(WITH_UDEV)
|
||||||
vshPrint(ctl, " udev");
|
vshPrint(ctl, " udev");
|
||||||
# endif
|
# endif
|
||||||
Index: libvirt-1.2.2/src/interface/interface_backend_netcf.c
|
Index: libvirt-1.2.3/src/interface/interface_backend_netcf.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-1.2.2.orig/src/interface/interface_backend_netcf.c
|
--- libvirt-1.2.3.orig/src/interface/interface_backend_netcf.c
|
||||||
+++ libvirt-1.2.2/src/interface/interface_backend_netcf.c
|
+++ libvirt-1.2.3/src/interface/interface_backend_netcf.c
|
||||||
@@ -23,7 +23,12 @@
|
@@ -23,7 +23,12 @@
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
@ -96,7 +96,7 @@ Index: libvirt-1.2.2/src/interface/interface_backend_netcf.c
|
|||||||
|
|
||||||
#include "virerror.h"
|
#include "virerror.h"
|
||||||
#include "datatypes.h"
|
#include "datatypes.h"
|
||||||
@@ -63,6 +68,37 @@ VIR_ONCE_GLOBAL_INIT(virNetcfDriverState
|
@@ -65,6 +70,37 @@ VIR_ONCE_GLOBAL_INIT(virNetcfDriverState
|
||||||
|
|
||||||
static virNetcfDriverStatePtr driverState = NULL;
|
static virNetcfDriverStatePtr driverState = NULL;
|
||||||
|
|
||||||
@ -134,7 +134,7 @@ Index: libvirt-1.2.2/src/interface/interface_backend_netcf.c
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
virNetcfDriverStateDispose(void *obj)
|
virNetcfDriverStateDispose(void *obj)
|
||||||
@@ -85,7 +121,22 @@ netcfStateInitialize(bool privileged ATT
|
@@ -87,7 +123,22 @@ netcfStateInitialize(bool privileged ATT
|
||||||
if (!(driverState = virObjectLockableNew(virNetcfDriverStateClass)))
|
if (!(driverState = virObjectLockableNew(virNetcfDriverStateClass)))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
@ -157,7 +157,7 @@ Index: libvirt-1.2.2/src/interface/interface_backend_netcf.c
|
|||||||
if (ncf_init(&driverState->netcf, NULL) != 0) {
|
if (ncf_init(&driverState->netcf, NULL) != 0) {
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||||
_("failed to initialize netcf"));
|
_("failed to initialize netcf"));
|
||||||
@@ -93,6 +144,7 @@ netcfStateInitialize(bool privileged ATT
|
@@ -95,6 +146,7 @@ netcfStateInitialize(bool privileged ATT
|
||||||
driverState = NULL;
|
driverState = NULL;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -165,11 +165,11 @@ Index: libvirt-1.2.2/src/interface/interface_backend_netcf.c
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Index: libvirt-1.2.2/src/interface/interface_driver.c
|
Index: libvirt-1.2.3/src/interface/interface_driver.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-1.2.2.orig/src/interface/interface_driver.c
|
--- libvirt-1.2.3.orig/src/interface/interface_driver.c
|
||||||
+++ libvirt-1.2.2/src/interface/interface_driver.c
|
+++ libvirt-1.2.3/src/interface/interface_driver.c
|
||||||
@@ -28,8 +28,15 @@ interfaceRegister(void) {
|
@@ -30,8 +30,15 @@ interfaceRegister(void)
|
||||||
if (netcfIfaceRegister() == 0)
|
if (netcfIfaceRegister() == 0)
|
||||||
return 0;
|
return 0;
|
||||||
#endif /* WITH_NETCF */
|
#endif /* WITH_NETCF */
|
||||||
@ -186,10 +186,10 @@ Index: libvirt-1.2.2/src/interface/interface_driver.c
|
|||||||
if (udevIfaceRegister() == 0)
|
if (udevIfaceRegister() == 0)
|
||||||
return 0;
|
return 0;
|
||||||
#endif /* WITH_UDEV */
|
#endif /* WITH_UDEV */
|
||||||
Index: libvirt-1.2.2/m4/virt-netcontrol.m4
|
Index: libvirt-1.2.3/m4/virt-netcontrol.m4
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ libvirt-1.2.2/m4/virt-netcontrol.m4
|
+++ libvirt-1.2.3/m4/virt-netcontrol.m4
|
||||||
@@ -0,0 +1,35 @@
|
@@ -0,0 +1,35 @@
|
||||||
+dnl The libnetcontrol library
|
+dnl The libnetcontrol library
|
||||||
+dnl
|
+dnl
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Apr 8 09:44:50 MDT 2014 - jfehlig@suse.com
|
||||||
|
|
||||||
|
- libxl: Set disk format for empty cdrom device
|
||||||
|
0e0c1a74-domid-fix.patch, 7a1452f5-libxl-empty-cdrom.patch
|
||||||
|
bnc#872517
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Apr 2 13:38:50 UTC 2014 - cbosdonnat@suse.com
|
Wed Apr 2 13:38:50 UTC 2014 - cbosdonnat@suse.com
|
||||||
|
|
||||||
|
@ -428,6 +428,8 @@ Source1: libvirtd.init
|
|||||||
Source2: libvirtd-relocation-server.fw
|
Source2: libvirtd-relocation-server.fw
|
||||||
Source99: baselibs.conf
|
Source99: baselibs.conf
|
||||||
# Upstream patches
|
# Upstream patches
|
||||||
|
Patch0: 0e0c1a74-domid-fix.patch
|
||||||
|
Patch1: 7a1452f5-libxl-empty-cdrom.patch
|
||||||
# Need to go upstream
|
# Need to go upstream
|
||||||
Patch100: xen-name-for-devid.patch
|
Patch100: xen-name-for-devid.patch
|
||||||
Patch101: ia64-clone.patch
|
Patch101: ia64-clone.patch
|
||||||
@ -943,6 +945,8 @@ namespaces.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
%patch0 -p1
|
||||||
|
%patch1 -p1
|
||||||
%patch100 -p1
|
%patch100 -p1
|
||||||
%patch101 -p1
|
%patch101 -p1
|
||||||
%patch102 -p1
|
%patch102 -p1
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: libvirt-1.2.2/daemon/libvirtd.conf
|
Index: libvirt-1.2.3/daemon/libvirtd.conf
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-1.2.2.orig/daemon/libvirtd.conf
|
--- libvirt-1.2.3.orig/daemon/libvirtd.conf
|
||||||
+++ libvirt-1.2.2/daemon/libvirtd.conf
|
+++ libvirt-1.2.3/daemon/libvirtd.conf
|
||||||
@@ -18,8 +18,8 @@
|
@@ -18,8 +18,8 @@
|
||||||
# It is necessary to setup a CA and issue server certificates before
|
# It is necessary to setup a CA and issue server certificates before
|
||||||
# using this capability.
|
# using this capability.
|
||||||
@ -13,11 +13,11 @@ Index: libvirt-1.2.2/daemon/libvirtd.conf
|
|||||||
|
|
||||||
# Listen for unencrypted TCP connections on the public TCP/IP port.
|
# Listen for unencrypted TCP connections on the public TCP/IP port.
|
||||||
# NB, must pass the --listen flag to the libvirtd process for this to
|
# NB, must pass the --listen flag to the libvirtd process for this to
|
||||||
Index: libvirt-1.2.2/daemon/libvirtd-config.c
|
Index: libvirt-1.2.3/daemon/libvirtd-config.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-1.2.2.orig/daemon/libvirtd-config.c
|
--- libvirt-1.2.3.orig/daemon/libvirtd-config.c
|
||||||
+++ libvirt-1.2.2/daemon/libvirtd-config.c
|
+++ libvirt-1.2.3/daemon/libvirtd-config.c
|
||||||
@@ -222,7 +222,7 @@ daemonConfigNew(bool privileged ATTRIBUT
|
@@ -229,7 +229,7 @@ daemonConfigNew(bool privileged ATTRIBUT
|
||||||
if (VIR_ALLOC(data) < 0)
|
if (VIR_ALLOC(data) < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
@ -8,11 +8,11 @@ Subject: [PATCH] support managed pci devices in xen driver
|
|||||||
src/xenxs/xen_xm.c | 28 +++++++++++++++++++++++++++-
|
src/xenxs/xen_xm.c | 28 +++++++++++++++++++++++++++-
|
||||||
2 files changed, 35 insertions(+), 15 deletions(-)
|
2 files changed, 35 insertions(+), 15 deletions(-)
|
||||||
|
|
||||||
Index: libvirt-1.2.2/src/xenxs/xen_sxpr.c
|
Index: libvirt-1.2.3/src/xenxs/xen_sxpr.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-1.2.2.orig/src/xenxs/xen_sxpr.c
|
--- libvirt-1.2.3.orig/src/xenxs/xen_sxpr.c
|
||||||
+++ libvirt-1.2.2/src/xenxs/xen_sxpr.c
|
+++ libvirt-1.2.3/src/xenxs/xen_sxpr.c
|
||||||
@@ -998,6 +998,7 @@ xenParseSxprPCI(virDomainDefPtr def,
|
@@ -997,6 +997,7 @@ xenParseSxprPCI(virDomainDefPtr def,
|
||||||
int busID;
|
int busID;
|
||||||
int slotID;
|
int slotID;
|
||||||
int funcID;
|
int funcID;
|
||||||
@ -20,7 +20,7 @@ Index: libvirt-1.2.2/src/xenxs/xen_sxpr.c
|
|||||||
|
|
||||||
node = cur->u.s.car;
|
node = cur->u.s.car;
|
||||||
if (!sexpr_lookup(node, "dev"))
|
if (!sexpr_lookup(node, "dev"))
|
||||||
@@ -1045,11 +1046,13 @@ xenParseSxprPCI(virDomainDefPtr def,
|
@@ -1044,11 +1045,13 @@ xenParseSxprPCI(virDomainDefPtr def,
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35,7 +35,7 @@ Index: libvirt-1.2.2/src/xenxs/xen_sxpr.c
|
|||||||
dev->source.subsys.type = VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI;
|
dev->source.subsys.type = VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI;
|
||||||
dev->source.subsys.u.pci.addr.domain = domainID;
|
dev->source.subsys.u.pci.addr.domain = domainID;
|
||||||
dev->source.subsys.u.pci.addr.bus = busID;
|
dev->source.subsys.u.pci.addr.bus = busID;
|
||||||
@@ -1993,11 +1996,15 @@ static void
|
@@ -1991,11 +1994,15 @@ static void
|
||||||
xenFormatSxprPCI(virDomainHostdevDefPtr def,
|
xenFormatSxprPCI(virDomainHostdevDefPtr def,
|
||||||
virBufferPtr buf)
|
virBufferPtr buf)
|
||||||
{
|
{
|
||||||
@ -52,7 +52,7 @@ Index: libvirt-1.2.2/src/xenxs/xen_sxpr.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -2016,12 +2023,6 @@ xenFormatSxprOnePCI(virDomainHostdevDefP
|
@@ -2014,12 +2021,6 @@ xenFormatSxprOnePCI(virDomainHostdevDefP
|
||||||
virBufferPtr buf,
|
virBufferPtr buf,
|
||||||
int detach)
|
int detach)
|
||||||
{
|
{
|
||||||
@ -65,7 +65,7 @@ Index: libvirt-1.2.2/src/xenxs/xen_sxpr.c
|
|||||||
virBufferAddLit(buf, "(pci ");
|
virBufferAddLit(buf, "(pci ");
|
||||||
xenFormatSxprPCI(def, buf);
|
xenFormatSxprPCI(def, buf);
|
||||||
if (detach)
|
if (detach)
|
||||||
@@ -2076,12 +2077,6 @@ xenFormatSxprAllPCI(virDomainDefPtr def,
|
@@ -2074,12 +2075,6 @@ xenFormatSxprAllPCI(virDomainDefPtr def,
|
||||||
for (i = 0; i < def->nhostdevs; i++) {
|
for (i = 0; i < def->nhostdevs; i++) {
|
||||||
if (def->hostdevs[i]->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
|
if (def->hostdevs[i]->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
|
||||||
def->hostdevs[i]->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI) {
|
def->hostdevs[i]->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI) {
|
||||||
@ -78,11 +78,11 @@ Index: libvirt-1.2.2/src/xenxs/xen_sxpr.c
|
|||||||
xenFormatSxprPCI(def->hostdevs[i], buf);
|
xenFormatSxprPCI(def->hostdevs[i], buf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Index: libvirt-1.2.2/src/xenxs/xen_xm.c
|
Index: libvirt-1.2.3/src/xenxs/xen_xm.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-1.2.2.orig/src/xenxs/xen_xm.c
|
--- libvirt-1.2.3.orig/src/xenxs/xen_xm.c
|
||||||
+++ libvirt-1.2.2/src/xenxs/xen_xm.c
|
+++ libvirt-1.2.3/src/xenxs/xen_xm.c
|
||||||
@@ -802,6 +802,8 @@ xenParseXM(virConfPtr conf, int xendConf
|
@@ -807,6 +807,8 @@ xenParseXM(virConfPtr conf, int xendConf
|
||||||
int busID;
|
int busID;
|
||||||
int slotID;
|
int slotID;
|
||||||
int funcID;
|
int funcID;
|
||||||
@ -91,7 +91,7 @@ Index: libvirt-1.2.2/src/xenxs/xen_xm.c
|
|||||||
|
|
||||||
domain[0] = bus[0] = slot[0] = func[0] = '\0';
|
domain[0] = bus[0] = slot[0] = func[0] = '\0';
|
||||||
|
|
||||||
@@ -811,6 +813,11 @@ xenParseXM(virConfPtr conf, int xendConf
|
@@ -816,6 +818,11 @@ xenParseXM(virConfPtr conf, int xendConf
|
||||||
/* pci=['0000:00:1b.0','0000:00:13.0'] */
|
/* pci=['0000:00:1b.0','0000:00:13.0'] */
|
||||||
if (!(key = list->str))
|
if (!(key = list->str))
|
||||||
goto skippci;
|
goto skippci;
|
||||||
@ -103,7 +103,7 @@ Index: libvirt-1.2.2/src/xenxs/xen_xm.c
|
|||||||
if (!(nextkey = strchr(key, ':')))
|
if (!(nextkey = strchr(key, ':')))
|
||||||
goto skippci;
|
goto skippci;
|
||||||
|
|
||||||
@@ -859,10 +866,30 @@ xenParseXM(virConfPtr conf, int xendConf
|
@@ -864,10 +871,30 @@ xenParseXM(virConfPtr conf, int xendConf
|
||||||
if (virStrToLong_i(func, NULL, 16, &funcID) < 0)
|
if (virStrToLong_i(func, NULL, 16, &funcID) < 0)
|
||||||
goto skippci;
|
goto skippci;
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
Adjust virtlockd init files to conform to SUSE standards
|
Adjust virtlockd init files to conform to SUSE standards
|
||||||
|
|
||||||
Index: libvirt-1.2.2/src/locking/virtlockd.sysconf
|
Index: libvirt-1.2.3/src/locking/virtlockd.sysconf
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-1.2.2.orig/src/locking/virtlockd.sysconf
|
--- libvirt-1.2.3.orig/src/locking/virtlockd.sysconf
|
||||||
+++ libvirt-1.2.2/src/locking/virtlockd.sysconf
|
+++ libvirt-1.2.3/src/locking/virtlockd.sysconf
|
||||||
@@ -1,3 +1,7 @@
|
@@ -1,3 +1,7 @@
|
||||||
+## Path: System/Virtualization/virtlockd
|
+## Path: System/Virtualization/virtlockd
|
||||||
+
|
+
|
||||||
@ -12,10 +12,10 @@ Index: libvirt-1.2.2/src/locking/virtlockd.sysconf
|
|||||||
#
|
#
|
||||||
# Pass extra arguments to virtlockd
|
# Pass extra arguments to virtlockd
|
||||||
#VIRTLOCKD_ARGS=
|
#VIRTLOCKD_ARGS=
|
||||||
Index: libvirt-1.2.2/src/locking/virtlockd.init.in
|
Index: libvirt-1.2.3/src/locking/virtlockd.init.in
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-1.2.2.orig/src/locking/virtlockd.init.in
|
--- libvirt-1.2.3.orig/src/locking/virtlockd.init.in
|
||||||
+++ libvirt-1.2.2/src/locking/virtlockd.init.in
|
+++ libvirt-1.2.3/src/locking/virtlockd.init.in
|
||||||
@@ -4,12 +4,14 @@
|
@@ -4,12 +4,14 @@
|
||||||
# http://www.linux-foundation.org/spec//booksets/LSB-Core-generic/LSB-Core-generic.html#INITSCRCOMCONV
|
# http://www.linux-foundation.org/spec//booksets/LSB-Core-generic/LSB-Core-generic.html#INITSCRCOMCONV
|
||||||
#
|
#
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
Index: libvirt-1.2.2/src/xenxs/xen_sxpr.c
|
Index: libvirt-1.2.3/src/xenxs/xen_sxpr.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- libvirt-1.2.2.orig/src/xenxs/xen_sxpr.c
|
--- libvirt-1.2.3.orig/src/xenxs/xen_sxpr.c
|
||||||
+++ libvirt-1.2.2/src/xenxs/xen_sxpr.c
|
+++ libvirt-1.2.3/src/xenxs/xen_sxpr.c
|
||||||
@@ -330,7 +330,7 @@ error:
|
@@ -332,7 +332,7 @@ xenParseSxprChar(const char *value,
|
||||||
static int
|
static int
|
||||||
xenParseSxprDisks(virDomainDefPtr def,
|
xenParseSxprDisks(virDomainDefPtr def,
|
||||||
const struct sexpr *root,
|
const struct sexpr *root,
|
||||||
@ -11,7 +11,7 @@ Index: libvirt-1.2.2/src/xenxs/xen_sxpr.c
|
|||||||
int xendConfigVersion)
|
int xendConfigVersion)
|
||||||
{
|
{
|
||||||
const struct sexpr *cur, *node;
|
const struct sexpr *cur, *node;
|
||||||
@@ -381,7 +381,6 @@ xenParseSxprDisks(virDomainDefPtr def,
|
@@ -383,7 +383,6 @@ xenParseSxprDisks(virDomainDefPtr def,
|
||||||
/* There is a case without the uname to the CD-ROM device */
|
/* There is a case without the uname to the CD-ROM device */
|
||||||
offset = strchr(dst, ':');
|
offset = strchr(dst, ':');
|
||||||
if (!offset ||
|
if (!offset ||
|
||||||
|
Loading…
Reference in New Issue
Block a user