Accepting request 639816 from home:jfehlig:branches:Virtualization
- Update to libvirt 4.8.0 - Many incremental improvements and bug fixes, see http://libvirt.org/news.html - Dropped patches: 60b4fd90-libxl-rm-vm-finish-phase.patch, e39c66d3-libxl-fix-p2p-migration.patch, 47da84e0-libxl-fix-job-handling-migsrc.patch, 0149464a-libxl-fix-job-handling-migdst.patch, 5ea2abb3-libxl-join-mig-rcv-thread.patch OBS-URL: https://build.opensuse.org/request/show/639816 OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=709
This commit is contained in:
parent
938c7e0e48
commit
ce630fa7e7
@ -18,10 +18,10 @@ them.
|
||||
create mode 100644 src/conf/domain_stats.c
|
||||
create mode 100644 src/conf/domain_stats.h
|
||||
|
||||
Index: libvirt-4.7.0/src/conf/domain_stats.c
|
||||
Index: libvirt-4.8.0/src/conf/domain_stats.c
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ libvirt-4.7.0/src/conf/domain_stats.c
|
||||
+++ libvirt-4.8.0/src/conf/domain_stats.c
|
||||
@@ -0,0 +1,139 @@
|
||||
+/*
|
||||
+ * domain_stats.c: domain stats extraction helpers
|
||||
@ -162,10 +162,10 @@ Index: libvirt-4.7.0/src/conf/domain_stats.c
|
||||
+}
|
||||
+
|
||||
+#undef STATS_ADD_NET_PARAM
|
||||
Index: libvirt-4.7.0/src/conf/domain_stats.h
|
||||
Index: libvirt-4.8.0/src/conf/domain_stats.h
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ libvirt-4.7.0/src/conf/domain_stats.h
|
||||
+++ libvirt-4.8.0/src/conf/domain_stats.h
|
||||
@@ -0,0 +1,64 @@
|
||||
+/*
|
||||
+ * domain_stats.h: domain stats extraction helpers
|
||||
@ -231,11 +231,11 @@ Index: libvirt-4.7.0/src/conf/domain_stats.h
|
||||
+ int *maxparams);
|
||||
+
|
||||
+#endif /* __DOMAIN_STATS_H */
|
||||
Index: libvirt-4.7.0/src/libvirt_private.syms
|
||||
Index: libvirt-4.8.0/src/libvirt_private.syms
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/libvirt_private.syms
|
||||
+++ libvirt-4.7.0/src/libvirt_private.syms
|
||||
@@ -650,6 +650,9 @@ virDomainConfNWFilterInstantiate;
|
||||
--- libvirt-4.8.0.orig/src/libvirt_private.syms
|
||||
+++ libvirt-4.8.0/src/libvirt_private.syms
|
||||
@@ -653,6 +653,9 @@ virDomainConfNWFilterInstantiate;
|
||||
virDomainConfNWFilterTeardown;
|
||||
virDomainConfVMNWFilterTeardown;
|
||||
|
||||
@ -245,7 +245,7 @@ Index: libvirt-4.7.0/src/libvirt_private.syms
|
||||
|
||||
# conf/interface_conf.h
|
||||
virInterfaceDefFormat;
|
||||
@@ -1540,6 +1543,7 @@ virCgroupGetMemoryUsage;
|
||||
@@ -1541,6 +1544,7 @@ virCgroupGetMemoryUsage;
|
||||
virCgroupGetMemSwapHardLimit;
|
||||
virCgroupGetMemSwapUsage;
|
||||
virCgroupGetPercpuStats;
|
||||
@ -253,11 +253,11 @@ Index: libvirt-4.7.0/src/libvirt_private.syms
|
||||
virCgroupHasController;
|
||||
virCgroupHasEmptyTasks;
|
||||
virCgroupKillPainfully;
|
||||
Index: libvirt-4.7.0/src/qemu/qemu_driver.c
|
||||
Index: libvirt-4.8.0/src/qemu/qemu_driver.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/qemu/qemu_driver.c
|
||||
+++ libvirt-4.7.0/src/qemu/qemu_driver.c
|
||||
@@ -74,6 +74,7 @@
|
||||
--- libvirt-4.8.0.orig/src/qemu/qemu_driver.c
|
||||
+++ libvirt-4.8.0/src/qemu/qemu_driver.c
|
||||
@@ -69,6 +69,7 @@
|
||||
#include "virarptable.h"
|
||||
#include "viruuid.h"
|
||||
#include "domain_conf.h"
|
||||
@ -265,7 +265,7 @@ Index: libvirt-4.7.0/src/qemu/qemu_driver.c
|
||||
#include "domain_audit.h"
|
||||
#include "node_device_conf.h"
|
||||
#include "virpci.h"
|
||||
@@ -19641,21 +19642,7 @@ qemuDomainGetStatsState(virQEMUDriverPtr
|
||||
@@ -19674,21 +19675,7 @@ qemuDomainGetStatsState(virQEMUDriverPtr
|
||||
int *maxparams,
|
||||
unsigned int privflags ATTRIBUTE_UNUSED)
|
||||
{
|
||||
@ -288,7 +288,7 @@ Index: libvirt-4.7.0/src/qemu/qemu_driver.c
|
||||
}
|
||||
|
||||
|
||||
@@ -19678,37 +19665,7 @@ qemuDomainGetStatsCpu(virQEMUDriverPtr d
|
||||
@@ -19711,37 +19698,7 @@ qemuDomainGetStatsCpu(virQEMUDriverPtr d
|
||||
unsigned int privflags ATTRIBUTE_UNUSED)
|
||||
{
|
||||
qemuDomainObjPrivatePtr priv = dom->privateData;
|
||||
@ -327,7 +327,7 @@ Index: libvirt-4.7.0/src/qemu/qemu_driver.c
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -19888,44 +19845,6 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr
|
||||
@@ -19921,44 +19878,6 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -372,7 +372,7 @@ Index: libvirt-4.7.0/src/qemu/qemu_driver.c
|
||||
static int
|
||||
qemuDomainGetStatsInterface(virQEMUDriverPtr driver ATTRIBUTE_UNUSED,
|
||||
virDomainObjPtr dom,
|
||||
@@ -19933,68 +19852,9 @@ qemuDomainGetStatsInterface(virQEMUDrive
|
||||
@@ -19966,68 +19885,9 @@ qemuDomainGetStatsInterface(virQEMUDrive
|
||||
int *maxparams,
|
||||
unsigned int privflags ATTRIBUTE_UNUSED)
|
||||
{
|
||||
@ -442,7 +442,7 @@ Index: libvirt-4.7.0/src/qemu/qemu_driver.c
|
||||
#define QEMU_ADD_BLOCK_PARAM_UI(record, maxparams, num, name, value) \
|
||||
do { \
|
||||
char param_name[VIR_TYPED_PARAM_FIELD_LENGTH]; \
|
||||
@@ -20227,10 +20087,10 @@ qemuDomainGetStatsBlockExportHeader(virD
|
||||
@@ -20260,10 +20120,10 @@ qemuDomainGetStatsBlockExportHeader(virD
|
||||
{
|
||||
int ret = -1;
|
||||
|
||||
@ -455,7 +455,7 @@ Index: libvirt-4.7.0/src/qemu/qemu_driver.c
|
||||
if (src->id)
|
||||
QEMU_ADD_BLOCK_PARAM_UI(records, nrecords, recordnr, "backingIndex",
|
||||
src->id);
|
||||
@@ -20370,7 +20230,7 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr
|
||||
@@ -20403,7 +20263,7 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr
|
||||
* after the iteration than it is to iterate twice; but we still
|
||||
* want count listed first. */
|
||||
count_index = record->nparams;
|
||||
@ -464,7 +464,7 @@ Index: libvirt-4.7.0/src/qemu/qemu_driver.c
|
||||
|
||||
for (i = 0; i < dom->def->ndisks; i++) {
|
||||
if (qemuDomainGetStatsBlockExportDisk(dom->def->disks[i], stats, nodestats,
|
||||
@@ -20395,10 +20255,6 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr
|
||||
@@ -20428,10 +20288,6 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr
|
||||
|
||||
#undef QEMU_ADD_BLOCK_PARAM_ULL
|
||||
|
||||
@ -475,11 +475,11 @@ Index: libvirt-4.7.0/src/qemu/qemu_driver.c
|
||||
static int
|
||||
qemuDomainGetStatsPerfOneEvent(virPerfPtr perf,
|
||||
virPerfEventType type,
|
||||
Index: libvirt-4.7.0/src/util/vircgroup.c
|
||||
Index: libvirt-4.8.0/src/util/vircgroup.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/util/vircgroup.c
|
||||
+++ libvirt-4.7.0/src/util/vircgroup.c
|
||||
@@ -4037,6 +4037,44 @@ virCgroupControllerAvailable(int control
|
||||
--- libvirt-4.8.0.orig/src/util/vircgroup.c
|
||||
+++ libvirt-4.8.0/src/util/vircgroup.c
|
||||
@@ -2628,6 +2628,44 @@ virCgroupControllerAvailable(int control
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -521,14 +521,13 @@ Index: libvirt-4.7.0/src/util/vircgroup.c
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
#else /* !VIR_CGROUP_SUPPORTED */
|
||||
#else /* !__linux__ */
|
||||
|
||||
bool
|
||||
@@ -4799,6 +4837,14 @@ virCgroupControllerAvailable(int control
|
||||
{
|
||||
return false;
|
||||
@@ -2637,6 +2675,15 @@ virCgroupAvailable(void)
|
||||
}
|
||||
+
|
||||
|
||||
|
||||
+int
|
||||
+virCgroupGetStatsCpu(virCgroupPtr cgroup,
|
||||
+ virDomainStatsRecordPtr record,
|
||||
@ -536,14 +535,16 @@ Index: libvirt-4.7.0/src/util/vircgroup.c
|
||||
+{
|
||||
+ return 0;
|
||||
+}
|
||||
#endif /* !VIR_CGROUP_SUPPORTED */
|
||||
|
||||
|
||||
Index: libvirt-4.7.0/src/util/vircgroup.h
|
||||
+
|
||||
+
|
||||
int
|
||||
virCgroupNewPartition(const char *path ATTRIBUTE_UNUSED,
|
||||
bool create ATTRIBUTE_UNUSED,
|
||||
Index: libvirt-4.8.0/src/util/vircgroup.h
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/util/vircgroup.h
|
||||
+++ libvirt-4.7.0/src/util/vircgroup.h
|
||||
@@ -286,4 +286,9 @@ int virCgroupSetOwner(virCgroupPtr cgrou
|
||||
--- libvirt-4.8.0.orig/src/util/vircgroup.h
|
||||
+++ libvirt-4.8.0/src/util/vircgroup.h
|
||||
@@ -287,4 +287,9 @@ int virCgroupSetOwner(virCgroupPtr cgrou
|
||||
int virCgroupHasEmptyTasks(virCgroupPtr cgroup, int controller);
|
||||
|
||||
bool virCgroupControllerAvailable(int controller);
|
||||
@ -553,10 +554,10 @@ Index: libvirt-4.7.0/src/util/vircgroup.h
|
||||
+ int *maxparams);
|
||||
+
|
||||
#endif /* __VIR_CGROUP_H__ */
|
||||
Index: libvirt-4.7.0/src/conf/Makefile.inc.am
|
||||
Index: libvirt-4.8.0/src/conf/Makefile.inc.am
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/conf/Makefile.inc.am
|
||||
+++ libvirt-4.7.0/src/conf/Makefile.inc.am
|
||||
--- libvirt-4.8.0.orig/src/conf/Makefile.inc.am
|
||||
+++ libvirt-4.8.0/src/conf/Makefile.inc.am
|
||||
@@ -20,6 +20,8 @@ DOMAIN_CONF_SOURCES = \
|
||||
conf/domain_audit.h \
|
||||
conf/domain_nwfilter.c \
|
||||
|
@ -19,11 +19,11 @@ reworking this patch and submitting it to upstream libvirt.
|
||||
src/libxl/libxl_driver.c | 91 ++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 91 insertions(+)
|
||||
|
||||
Index: libvirt-4.7.0/src/libxl/libxl_driver.c
|
||||
Index: libvirt-4.8.0/src/libxl/libxl_driver.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/libxl/libxl_driver.c
|
||||
+++ libvirt-4.7.0/src/libxl/libxl_driver.c
|
||||
@@ -5119,6 +5119,97 @@ libxlDomainMemoryStats(virDomainPtr dom,
|
||||
--- libvirt-4.8.0.orig/src/libxl/libxl_driver.c
|
||||
+++ libvirt-4.8.0/src/libxl/libxl_driver.c
|
||||
@@ -5253,6 +5253,97 @@ libxlDomainMemoryStats(virDomainPtr dom,
|
||||
|
||||
#undef LIBXL_SET_MEMSTAT
|
||||
|
||||
@ -121,7 +121,7 @@ Index: libvirt-4.7.0/src/libxl/libxl_driver.c
|
||||
static int
|
||||
libxlDomainGetJobInfo(virDomainPtr dom,
|
||||
virDomainJobInfoPtr info)
|
||||
@@ -6497,6 +6588,7 @@ static virHypervisorDriver libxlHypervis
|
||||
@@ -6635,6 +6726,7 @@ static virHypervisorDriver libxlHypervis
|
||||
#endif
|
||||
.nodeGetFreeMemory = libxlNodeGetFreeMemory, /* 0.9.0 */
|
||||
.nodeGetCellsFreeMemory = libxlNodeGetCellsFreeMemory, /* 1.1.1 */
|
||||
|
@ -9,11 +9,11 @@ them using the existing API.
|
||||
src/lxc/lxc_driver.c | 138 +++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 138 insertions(+)
|
||||
|
||||
Index: libvirt-4.7.0/src/lxc/lxc_driver.c
|
||||
Index: libvirt-4.8.0/src/lxc/lxc_driver.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/lxc/lxc_driver.c
|
||||
+++ libvirt-4.7.0/src/lxc/lxc_driver.c
|
||||
@@ -79,6 +79,7 @@
|
||||
--- libvirt-4.8.0.orig/src/lxc/lxc_driver.c
|
||||
+++ libvirt-4.8.0/src/lxc/lxc_driver.c
|
||||
@@ -78,6 +78,7 @@
|
||||
#include "viraccessapichecklxc.h"
|
||||
#include "virhostdev.h"
|
||||
#include "netdev_bandwidth_conf.h"
|
||||
@ -21,7 +21,7 @@ Index: libvirt-4.7.0/src/lxc/lxc_driver.c
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_LXC
|
||||
|
||||
@@ -5411,6 +5412,142 @@ lxcDomainHasManagedSaveImage(virDomainPt
|
||||
@@ -5410,6 +5411,142 @@ lxcDomainHasManagedSaveImage(virDomainPt
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -164,7 +164,7 @@ Index: libvirt-4.7.0/src/lxc/lxc_driver.c
|
||||
|
||||
/* Function Tables */
|
||||
static virHypervisorDriver lxcHypervisorDriver = {
|
||||
@@ -5506,6 +5643,7 @@ static virHypervisorDriver lxcHypervisor
|
||||
@@ -5505,6 +5642,7 @@ static virHypervisorDriver lxcHypervisor
|
||||
.nodeGetFreePages = lxcNodeGetFreePages, /* 1.2.6 */
|
||||
.nodeAllocPages = lxcNodeAllocPages, /* 1.2.9 */
|
||||
.domainHasManagedSaveImage = lxcDomainHasManagedSaveImage, /* 1.2.13 */
|
||||
|
@ -1,239 +0,0 @@
|
||||
commit 0149464afc7100f048a2468e40e84b6a50aeb3a3
|
||||
Author: Jim Fehlig <jfehlig@suse.com>
|
||||
Date: Wed Aug 29 11:11:00 2018 -0600
|
||||
|
||||
libxl: fix job handling across migration phases on dst
|
||||
|
||||
The libxlDomainMigrationDst* functions are a bit flawed in their
|
||||
handling of modify jobs. A job begins when the destination host
|
||||
begins receiving the incoming VM and ends after the VM is started.
|
||||
The finish phase contains another BeginJob/EndJob sequence.
|
||||
|
||||
This patch changes the logic to begin a job for the incoming VM
|
||||
in the prepare phase and end the job in the finish phase.
|
||||
|
||||
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
||||
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
|
||||
|
||||
Index: libvirt-4.7.0/src/libxl/libxl_driver.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/libxl/libxl_driver.c
|
||||
+++ libvirt-4.7.0/src/libxl/libxl_driver.c
|
||||
@@ -6020,15 +6020,8 @@ libxlDomainMigrateFinish3Params(virConne
|
||||
return NULL;
|
||||
}
|
||||
|
||||
- if (libxlDomainObjBeginJob(driver, vm, LIBXL_JOB_MODIFY) < 0) {
|
||||
- virDomainObjEndAPI(&vm);
|
||||
- return NULL;
|
||||
- }
|
||||
-
|
||||
ret = libxlDomainMigrationDstFinish(dconn, vm, flags, cancelled);
|
||||
|
||||
- libxlDomainObjEndJob(driver, vm);
|
||||
-
|
||||
virDomainObjEndAPI(&vm);
|
||||
|
||||
return ret;
|
||||
Index: libvirt-4.7.0/src/libxl/libxl_migration.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/libxl/libxl_migration.c
|
||||
+++ libvirt-4.7.0/src/libxl/libxl_migration.c
|
||||
@@ -266,9 +266,6 @@ libxlDoMigrateDstReceive(void *opaque)
|
||||
size_t i;
|
||||
|
||||
virObjectRef(vm);
|
||||
- virObjectLock(vm);
|
||||
- if (libxlDomainObjBeginJob(driver, vm, LIBXL_JOB_MODIFY) < 0)
|
||||
- goto cleanup;
|
||||
|
||||
/*
|
||||
* Always start the domain paused. If needed, unpause in the
|
||||
@@ -288,10 +285,6 @@ libxlDoMigrateDstReceive(void *opaque)
|
||||
args->nsocks = 0;
|
||||
VIR_FORCE_CLOSE(recvfd);
|
||||
virObjectUnref(args);
|
||||
-
|
||||
- libxlDomainObjEndJob(driver, vm);
|
||||
-
|
||||
- cleanup:
|
||||
virDomainObjEndAPI(&vm);
|
||||
}
|
||||
|
||||
@@ -583,6 +576,13 @@ libxlDomainMigrationDstPrepareTunnel3(vi
|
||||
goto error;
|
||||
*def = NULL;
|
||||
|
||||
+ /*
|
||||
+ * Unless an error is encountered in this function, the job will
|
||||
+ * be terminated in the finish phase.
|
||||
+ */
|
||||
+ if (libxlDomainObjBeginJob(driver, vm, LIBXL_JOB_MODIFY) < 0)
|
||||
+ goto error;
|
||||
+
|
||||
priv = vm->privateData;
|
||||
|
||||
if (taint_hook) {
|
||||
@@ -595,18 +595,18 @@ libxlDomainMigrationDstPrepareTunnel3(vi
|
||||
* stream -> pipe -> recvfd of libxlDomainStartRestore
|
||||
*/
|
||||
if (pipe(dataFD) < 0)
|
||||
- goto error;
|
||||
+ goto endjob;
|
||||
|
||||
/* Stream data will be written to pipeIn */
|
||||
if (virFDStreamOpen(st, dataFD[1]) < 0)
|
||||
- goto error;
|
||||
+ goto endjob;
|
||||
dataFD[1] = -1; /* 'st' owns the FD now & will close it */
|
||||
|
||||
if (libxlMigrationDstArgsInitialize() < 0)
|
||||
- goto error;
|
||||
+ goto endjob;
|
||||
|
||||
if (!(args = virObjectNew(libxlMigrationDstArgsClass)))
|
||||
- goto error;
|
||||
+ goto endjob;
|
||||
|
||||
args->conn = virObjectRef(dconn);
|
||||
args->vm = virObjectRef(vm);
|
||||
@@ -620,12 +620,15 @@ libxlDomainMigrationDstPrepareTunnel3(vi
|
||||
if (virThreadCreate(&thread, false, libxlDoMigrateDstReceive, args) < 0) {
|
||||
virReportError(VIR_ERR_OPERATION_FAILED, "%s",
|
||||
_("Failed to create thread for receiving migration data"));
|
||||
- goto error;
|
||||
+ goto endjob;
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
goto done;
|
||||
|
||||
+ endjob:
|
||||
+ libxlDomainObjEndJob(driver, vm);
|
||||
+
|
||||
error:
|
||||
libxlMigrationCookieFree(mig);
|
||||
VIR_FORCE_CLOSE(dataFD[1]);
|
||||
@@ -679,6 +682,13 @@ libxlDomainMigrationDstPrepare(virConnec
|
||||
goto error;
|
||||
*def = NULL;
|
||||
|
||||
+ /*
|
||||
+ * Unless an error is encountered in this function, the job will
|
||||
+ * be terminated in the finish phase.
|
||||
+ */
|
||||
+ if (libxlDomainObjBeginJob(driver, vm, LIBXL_JOB_MODIFY) < 0)
|
||||
+ goto error;
|
||||
+
|
||||
priv = vm->privateData;
|
||||
|
||||
if (taint_hook) {
|
||||
@@ -689,27 +699,27 @@ libxlDomainMigrationDstPrepare(virConnec
|
||||
/* Create socket connection to receive migration data */
|
||||
if (!uri_in) {
|
||||
if ((hostname = virGetHostname()) == NULL)
|
||||
- goto error;
|
||||
+ goto endjob;
|
||||
|
||||
if (STRPREFIX(hostname, "localhost")) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||
_("hostname on destination resolved to localhost,"
|
||||
" but migration requires an FQDN"));
|
||||
- goto error;
|
||||
+ goto endjob;
|
||||
}
|
||||
|
||||
if (virPortAllocatorAcquire(driver->migrationPorts, &port) < 0)
|
||||
- goto error;
|
||||
+ goto endjob;
|
||||
|
||||
priv->migrationPort = port;
|
||||
if (virAsprintf(uri_out, "tcp://%s:%d", hostname, port) < 0)
|
||||
- goto error;
|
||||
+ goto endjob;
|
||||
} else {
|
||||
if (!(STRPREFIX(uri_in, "tcp://"))) {
|
||||
/* not full URI, add prefix tcp:// */
|
||||
char *tmp;
|
||||
if (virAsprintf(&tmp, "tcp://%s", uri_in) < 0)
|
||||
- goto error;
|
||||
+ goto endjob;
|
||||
uri = virURIParse(tmp);
|
||||
VIR_FREE(tmp);
|
||||
} else {
|
||||
@@ -720,20 +730,20 @@ libxlDomainMigrationDstPrepare(virConnec
|
||||
virReportError(VIR_ERR_INVALID_ARG,
|
||||
_("unable to parse URI: %s"),
|
||||
uri_in);
|
||||
- goto error;
|
||||
+ goto endjob;
|
||||
}
|
||||
|
||||
if (uri->server == NULL) {
|
||||
virReportError(VIR_ERR_INVALID_ARG,
|
||||
_("missing host in migration URI: %s"),
|
||||
uri_in);
|
||||
- goto error;
|
||||
+ goto endjob;
|
||||
}
|
||||
hostname = uri->server;
|
||||
|
||||
if (uri->port == 0) {
|
||||
if (virPortAllocatorAcquire(driver->migrationPorts, &port) < 0)
|
||||
- goto error;
|
||||
+ goto endjob;
|
||||
|
||||
priv->migrationPort = port;
|
||||
} else {
|
||||
@@ -741,7 +751,7 @@ libxlDomainMigrationDstPrepare(virConnec
|
||||
}
|
||||
|
||||
if (virAsprintf(uri_out, "tcp://%s:%d", hostname, port) < 0)
|
||||
- goto error;
|
||||
+ goto endjob;
|
||||
}
|
||||
|
||||
snprintf(portstr, sizeof(portstr), "%d", port);
|
||||
@@ -751,14 +761,14 @@ libxlDomainMigrationDstPrepare(virConnec
|
||||
&socks, &nsocks) < 0) {
|
||||
virReportError(VIR_ERR_OPERATION_FAILED, "%s",
|
||||
_("Fail to create socket for incoming migration"));
|
||||
- goto error;
|
||||
+ goto endjob;
|
||||
}
|
||||
|
||||
if (libxlMigrationDstArgsInitialize() < 0)
|
||||
- goto error;
|
||||
+ goto endjob;
|
||||
|
||||
if (!(args = virObjectNew(libxlMigrationDstArgsClass)))
|
||||
- goto error;
|
||||
+ goto endjob;
|
||||
|
||||
args->conn = virObjectRef(dconn);
|
||||
args->vm = virObjectRef(vm);
|
||||
@@ -786,11 +796,14 @@ libxlDomainMigrationDstPrepare(virConnec
|
||||
}
|
||||
|
||||
if (!nsocks_listen)
|
||||
- goto error;
|
||||
+ goto endjob;
|
||||
|
||||
ret = 0;
|
||||
goto done;
|
||||
|
||||
+ endjob:
|
||||
+ libxlDomainObjEndJob(driver, vm);
|
||||
+
|
||||
error:
|
||||
for (i = 0; i < nsocks; i++) {
|
||||
virNetSocketClose(socks[i]);
|
||||
@@ -1354,6 +1367,8 @@ libxlDomainMigrationDstFinish(virConnect
|
||||
virDomainObjListRemove(driver->domains, vm);
|
||||
}
|
||||
|
||||
+ /* EndJob for corresponding BeginJob in prepare phase */
|
||||
+ libxlDomainObjEndJob(driver, vm);
|
||||
virObjectEventStateQueue(driver->domainEventState, event);
|
||||
virObjectUnref(cfg);
|
||||
return dom;
|
@ -1,88 +0,0 @@
|
||||
commit 47da84e09044e5af914a64469d06adef34279964
|
||||
Author: Jim Fehlig <jfehlig@suse.com>
|
||||
Date: Tue Aug 28 17:30:18 2018 -0600
|
||||
|
||||
libxl: fix job handling across migration phases on src
|
||||
|
||||
The libxlDomainMigrationSrc* functions are a bit flawed in their
|
||||
handling of modify jobs. A job begins at the start of the begin
|
||||
phase but ends before the phase completes. No job is running for
|
||||
the remaining phases of migration on the source host.
|
||||
|
||||
Change the logic to keep the job running after a successful begin
|
||||
phase, and end the job in the confirm phase. The job must also end
|
||||
in the perform phase in the case of error since confirm phase would
|
||||
not be executed.
|
||||
|
||||
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
||||
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
|
||||
|
||||
Index: libvirt-4.7.0/src/libxl/libxl_migration.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/libxl/libxl_migration.c
|
||||
+++ libvirt-4.7.0/src/libxl/libxl_migration.c
|
||||
@@ -399,6 +399,11 @@ libxlDomainMigrationSrcBegin(virConnectP
|
||||
virDomainDefPtr def;
|
||||
char *xml = NULL;
|
||||
|
||||
+ /*
|
||||
+ * In the case of successful migration, a job is started here and
|
||||
+ * terminated in the confirm phase. Errors in the begin or perform
|
||||
+ * phase will also terminate the job.
|
||||
+ */
|
||||
if (libxlDomainObjBeginJob(driver, vm, LIBXL_JOB_MODIFY) < 0)
|
||||
goto cleanup;
|
||||
|
||||
@@ -428,6 +433,9 @@ libxlDomainMigrationSrcBegin(virConnectP
|
||||
goto endjob;
|
||||
|
||||
xml = virDomainDefFormat(def, cfg->caps, VIR_DOMAIN_DEF_FORMAT_SECURE);
|
||||
+ /* Valid xml means success! EndJob in the confirm phase */
|
||||
+ if (xml)
|
||||
+ goto cleanup;
|
||||
|
||||
endjob:
|
||||
libxlDomainObjEndJob(driver, vm);
|
||||
@@ -1169,6 +1177,14 @@ libxlDomainMigrationSrcPerformP2P(libxlD
|
||||
ret = libxlDoMigrateSrcP2P(driver, vm, sconn, xmlin, dconn, dconnuri,
|
||||
dname, uri_str, flags);
|
||||
|
||||
+ if (ret < 0) {
|
||||
+ /*
|
||||
+ * Confirm phase will not be executed if perform fails. End the
|
||||
+ * job started in begin phase.
|
||||
+ */
|
||||
+ libxlDomainObjEndJob(driver, vm);
|
||||
+ }
|
||||
+
|
||||
cleanup:
|
||||
orig_err = virSaveLastError();
|
||||
virObjectUnlock(vm);
|
||||
@@ -1232,11 +1248,17 @@ libxlDomainMigrationSrcPerform(libxlDriv
|
||||
ret = libxlDoMigrateSrcSend(driver, vm, flags, sockfd);
|
||||
virObjectLock(vm);
|
||||
|
||||
- if (ret < 0)
|
||||
+ if (ret < 0) {
|
||||
virDomainLockProcessResume(driver->lockManager,
|
||||
"xen:///system",
|
||||
vm,
|
||||
priv->lockState);
|
||||
+ /*
|
||||
+ * Confirm phase will not be executed if perform fails. End the
|
||||
+ * job started in begin phase.
|
||||
+ */
|
||||
+ libxlDomainObjEndJob(driver, vm);
|
||||
+ }
|
||||
|
||||
cleanup:
|
||||
VIR_FORCE_CLOSE(sockfd);
|
||||
@@ -1386,6 +1408,8 @@ libxlDomainMigrationSrcConfirm(libxlDriv
|
||||
ret = 0;
|
||||
|
||||
cleanup:
|
||||
+ /* EndJob for corresponding BeginJob in begin phase */
|
||||
+ libxlDomainObjEndJob(driver, vm);
|
||||
virObjectEventStateQueue(driver->domainEventState, event);
|
||||
virObjectUnref(cfg);
|
||||
return ret;
|
@ -1,87 +0,0 @@
|
||||
commit 5ea2abb3bfd552175dc2dfcc295fde3fbf17fc37
|
||||
Author: Jim Fehlig <jfehlig@suse.com>
|
||||
Date: Fri Aug 24 15:38:14 2018 -0600
|
||||
|
||||
libxl: join with thread receiving migration data
|
||||
|
||||
It is possible the incoming VM is not fully started when the finish
|
||||
phase of migration is executed. In libxlDomainMigrationDstFinish,
|
||||
wait for the thread receiving the VM to complete before executing
|
||||
finish phase tasks.
|
||||
|
||||
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
||||
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
|
||||
|
||||
Index: libvirt-4.7.0/src/libxl/libxl_domain.h
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/libxl/libxl_domain.h
|
||||
+++ libvirt-4.7.0/src/libxl/libxl_domain.h
|
||||
@@ -65,6 +65,7 @@ struct _libxlDomainObjPrivate {
|
||||
/* console */
|
||||
virChrdevsPtr devs;
|
||||
libxl_evgen_domain_death *deathW;
|
||||
+ virThreadPtr migrationDstReceiveThr;
|
||||
unsigned short migrationPort;
|
||||
char *lockState;
|
||||
|
||||
Index: libvirt-4.7.0/src/libxl/libxl_migration.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/libxl/libxl_migration.c
|
||||
+++ libvirt-4.7.0/src/libxl/libxl_migration.c
|
||||
@@ -297,9 +297,9 @@ libxlMigrateDstReceive(virNetSocketPtr s
|
||||
libxlMigrationDstArgs *args = opaque;
|
||||
virNetSocketPtr *socks = args->socks;
|
||||
size_t nsocks = args->nsocks;
|
||||
+ libxlDomainObjPrivatePtr priv = args->vm->privateData;
|
||||
virNetSocketPtr client_sock;
|
||||
int recvfd = -1;
|
||||
- virThread thread;
|
||||
size_t i;
|
||||
|
||||
/* Accept migration connection */
|
||||
@@ -318,7 +318,10 @@ libxlMigrateDstReceive(virNetSocketPtr s
|
||||
* the migration data
|
||||
*/
|
||||
args->recvfd = recvfd;
|
||||
- if (virThreadCreate(&thread, false,
|
||||
+ VIR_FREE(priv->migrationDstReceiveThr);
|
||||
+ if (VIR_ALLOC(priv->migrationDstReceiveThr) < 0)
|
||||
+ goto fail;
|
||||
+ if (virThreadCreate(priv->migrationDstReceiveThr, true,
|
||||
libxlDoMigrateDstReceive, args) < 0) {
|
||||
virReportError(VIR_ERR_OPERATION_FAILED, "%s",
|
||||
_("Failed to create thread for receiving migration data"));
|
||||
@@ -557,7 +560,6 @@ libxlDomainMigrationDstPrepareTunnel3(vi
|
||||
libxlDriverPrivatePtr driver = dconn->privateData;
|
||||
virDomainObjPtr vm = NULL;
|
||||
libxlMigrationDstArgs *args = NULL;
|
||||
- virThread thread;
|
||||
bool taint_hook = false;
|
||||
libxlDomainObjPrivatePtr priv = NULL;
|
||||
char *xmlout = NULL;
|
||||
@@ -617,7 +619,10 @@ libxlDomainMigrationDstPrepareTunnel3(vi
|
||||
args->nsocks = 0;
|
||||
mig = NULL;
|
||||
|
||||
- if (virThreadCreate(&thread, false, libxlDoMigrateDstReceive, args) < 0) {
|
||||
+ VIR_FREE(priv->migrationDstReceiveThr);
|
||||
+ if (VIR_ALLOC(priv->migrationDstReceiveThr) < 0)
|
||||
+ goto error;
|
||||
+ if (virThreadCreate(priv->migrationDstReceiveThr, true, libxlDoMigrateDstReceive, args) < 0) {
|
||||
virReportError(VIR_ERR_OPERATION_FAILED, "%s",
|
||||
_("Failed to create thread for receiving migration data"));
|
||||
goto endjob;
|
||||
@@ -1291,6 +1296,13 @@ libxlDomainMigrationDstFinish(virConnect
|
||||
virObjectEventPtr event = NULL;
|
||||
virDomainPtr dom = NULL;
|
||||
|
||||
+ if (priv->migrationDstReceiveThr) {
|
||||
+ virObjectUnlock(vm);
|
||||
+ virThreadJoin(priv->migrationDstReceiveThr);
|
||||
+ virObjectLock(vm);
|
||||
+ VIR_FREE(priv->migrationDstReceiveThr);
|
||||
+ }
|
||||
+
|
||||
virPortAllocatorRelease(priv->migrationPort);
|
||||
priv->migrationPort = 0;
|
||||
|
@ -1,44 +0,0 @@
|
||||
commit 60b4fd90213135be0e471756d3d95c68eb3e8f59
|
||||
Author: Jim Fehlig <jfehlig@suse.com>
|
||||
Date: Fri Aug 24 14:55:03 2018 -0600
|
||||
|
||||
libxl: migration: defer removing VM until finish phase
|
||||
|
||||
If for any reason the restore of a VM fails on the destination host
|
||||
in a migration operation, the VM is removed (if not persistent) from
|
||||
the virDomainObjList, meaning it is no longer available for additional
|
||||
cleanup or processing in the finish phase. Defer removing the VM from
|
||||
the virDomainObjList until the finish phase, which already contains
|
||||
logic to remove the VM.
|
||||
|
||||
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
||||
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
|
||||
|
||||
Index: libvirt-4.7.0/src/libxl/libxl_migration.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/libxl/libxl_migration.c
|
||||
+++ libvirt-4.7.0/src/libxl/libxl_migration.c
|
||||
@@ -264,7 +264,6 @@ libxlDoMigrateDstReceive(void *opaque)
|
||||
libxlDriverPrivatePtr driver = args->conn->privateData;
|
||||
int recvfd = args->recvfd;
|
||||
size_t i;
|
||||
- int ret;
|
||||
|
||||
virObjectRef(vm);
|
||||
virObjectLock(vm);
|
||||
@@ -274,12 +273,10 @@ libxlDoMigrateDstReceive(void *opaque)
|
||||
/*
|
||||
* Always start the domain paused. If needed, unpause in the
|
||||
* finish phase, after transfer of the domain is complete.
|
||||
+ * Errors and cleanup are also handled in the finish phase.
|
||||
*/
|
||||
- ret = libxlDomainStartRestore(driver, vm, true, recvfd,
|
||||
- args->migcookie->xenMigStreamVer);
|
||||
-
|
||||
- if (ret < 0 && !vm->persistent)
|
||||
- virDomainObjListRemove(driver->domains, vm);
|
||||
+ libxlDomainStartRestore(driver, vm, true, recvfd,
|
||||
+ args->migcookie->xenMigStreamVer);
|
||||
|
||||
/* Remove all listen socks from event handler, and close them. */
|
||||
for (i = 0; i < nsocks; i++) {
|
@ -1,7 +1,7 @@
|
||||
Index: libvirt-4.7.0/examples/apparmor/libvirt-lxc
|
||||
Index: libvirt-4.8.0/examples/apparmor/libvirt-lxc
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/examples/apparmor/libvirt-lxc
|
||||
+++ libvirt-4.7.0/examples/apparmor/libvirt-lxc
|
||||
--- libvirt-4.8.0.orig/examples/apparmor/libvirt-lxc
|
||||
+++ libvirt-4.8.0/examples/apparmor/libvirt-lxc
|
||||
@@ -2,39 +2,15 @@
|
||||
|
||||
#include <abstractions/base>
|
||||
|
@ -11,11 +11,11 @@ Signed-off-by: Chunyan Liu <cyliu@suse.com>
|
||||
src/qemu/qemu_driver.c | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
Index: libvirt-4.7.0/src/qemu/qemu_driver.c
|
||||
Index: libvirt-4.8.0/src/qemu/qemu_driver.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/qemu/qemu_driver.c
|
||||
+++ libvirt-4.7.0/src/qemu/qemu_driver.c
|
||||
@@ -17511,6 +17511,14 @@ qemuDomainBlockCopyCommon(virDomainObjPt
|
||||
--- libvirt-4.8.0.orig/src/qemu/qemu_driver.c
|
||||
+++ libvirt-4.8.0/src/qemu/qemu_driver.c
|
||||
@@ -17503,6 +17503,14 @@ qemuDomainBlockCopyCommon(virDomainObjPt
|
||||
goto endjob;
|
||||
}
|
||||
|
||||
|
@ -1,115 +0,0 @@
|
||||
commit e39c66d3ce3e65170a1db1324eb1fb8e57d82ecb
|
||||
Author: Jim Fehlig <jfehlig@suse.com>
|
||||
Date: Tue Aug 28 17:13:54 2018 -0600
|
||||
|
||||
libxl: fix logic in P2P migration
|
||||
|
||||
libxlDoMigrateSrcP2P() performs all phases of the migration
|
||||
protocol for peer-to-peer migration. Unfortunately the logic
|
||||
was a bit flawed since it is possible to skip the confirm
|
||||
phase after a successfull begin and prepare phase. Fix the
|
||||
logic to always call the confirm phase after a successful begin
|
||||
and perform. Skip the confirm phase if begin or perform fail.
|
||||
|
||||
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
||||
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
|
||||
|
||||
Index: libvirt-4.7.0/src/libxl/libxl_migration.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/libxl/libxl_migration.c
|
||||
+++ libvirt-4.7.0/src/libxl/libxl_migration.c
|
||||
@@ -972,21 +972,13 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
|
||||
char *cookieout = NULL;
|
||||
int cookieoutlen;
|
||||
bool cancelled = true;
|
||||
+ bool notify_source = true;
|
||||
virErrorPtr orig_err = NULL;
|
||||
int ret = -1;
|
||||
/* For tunnel migration */
|
||||
virStreamPtr st = NULL;
|
||||
struct libxlTunnelControl *tc = NULL;
|
||||
|
||||
- dom_xml = libxlDomainMigrationSrcBegin(sconn, vm, xmlin,
|
||||
- &cookieout, &cookieoutlen);
|
||||
- if (!dom_xml)
|
||||
- goto cleanup;
|
||||
-
|
||||
- if (virTypedParamsAddString(¶ms, &nparams, &maxparams,
|
||||
- VIR_MIGRATE_PARAM_DEST_XML, dom_xml) < 0)
|
||||
- goto cleanup;
|
||||
-
|
||||
if (dname &&
|
||||
virTypedParamsAddString(¶ms, &nparams, &maxparams,
|
||||
VIR_MIGRATE_PARAM_DEST_NAME, dname) < 0)
|
||||
@@ -997,6 +989,19 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
|
||||
VIR_MIGRATE_PARAM_URI, uri) < 0)
|
||||
goto cleanup;
|
||||
|
||||
+ dom_xml = libxlDomainMigrationSrcBegin(sconn, vm, xmlin,
|
||||
+ &cookieout, &cookieoutlen);
|
||||
+ /*
|
||||
+ * If dom_xml is non-NULL the begin phase has succeeded, and the
|
||||
+ * confirm phase must be called to cleanup the migration operation.
|
||||
+ */
|
||||
+ if (!dom_xml)
|
||||
+ goto cleanup;
|
||||
+
|
||||
+ if (virTypedParamsAddString(¶ms, &nparams, &maxparams,
|
||||
+ VIR_MIGRATE_PARAM_DEST_XML, dom_xml) < 0)
|
||||
+ goto confirm;
|
||||
+
|
||||
/* We don't require the destination to have P2P support
|
||||
* as it looks to be normal migration from the receiver perpective.
|
||||
*/
|
||||
@@ -1006,7 +1011,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
|
||||
virObjectUnlock(vm);
|
||||
if (flags & VIR_MIGRATE_TUNNELLED) {
|
||||
if (!(st = virStreamNew(dconn, 0)))
|
||||
- goto cleanup;
|
||||
+ goto confirm;
|
||||
ret = dconn->driver->domainMigratePrepareTunnel3Params
|
||||
(dconn, st, params, nparams, cookieout, cookieoutlen, NULL, NULL, destflags);
|
||||
} else {
|
||||
@@ -1016,7 +1021,7 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
|
||||
virObjectLock(vm);
|
||||
|
||||
if (ret == -1)
|
||||
- goto cleanup;
|
||||
+ goto confirm;
|
||||
|
||||
if (!(flags & VIR_MIGRATE_TUNNELLED)) {
|
||||
if (uri_out) {
|
||||
@@ -1038,8 +1043,10 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
|
||||
else
|
||||
ret = libxlDomainMigrationSrcPerform(driver, vm, NULL, NULL,
|
||||
uri_out, NULL, flags);
|
||||
- if (ret < 0)
|
||||
+ if (ret < 0) {
|
||||
+ notify_source = false;
|
||||
orig_err = virSaveLastError();
|
||||
+ }
|
||||
|
||||
cancelled = (ret < 0);
|
||||
|
||||
@@ -1067,12 +1074,15 @@ libxlDoMigrateSrcP2P(libxlDriverPrivateP
|
||||
if (!orig_err)
|
||||
orig_err = virSaveLastError();
|
||||
|
||||
- VIR_DEBUG("Confirm3 cancelled=%d vm=%p", cancelled, vm);
|
||||
- ret = libxlDomainMigrationSrcConfirm(driver, vm, flags, cancelled);
|
||||
-
|
||||
- if (ret < 0)
|
||||
- VIR_WARN("Guest %s probably left in 'paused' state on source",
|
||||
- vm->def->name);
|
||||
+ confirm:
|
||||
+ if (notify_source) {
|
||||
+ VIR_DEBUG("Confirm3 cancelled=%d vm=%p", cancelled, vm);
|
||||
+ ret = libxlDomainMigrationSrcConfirm(driver, vm, flags, cancelled);
|
||||
+
|
||||
+ if (ret < 0)
|
||||
+ VIR_WARN("Guest %s probably left in 'paused' state on source",
|
||||
+ vm->def->name);
|
||||
+ }
|
||||
|
||||
cleanup:
|
||||
if (flags & VIR_MIGRATE_TUNNELLED) {
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:92c279f7321624ac5a37a81f8bbe8c8d2a16781da04c63c99c92d3de035767e4
|
||||
size 14813352
|
@ -1,10 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQEcBAABAgAGBQJbjW0tAAoJEBVYiyZZa+pdVjgIAM1W7JkjCuOexxKUr+tQnKwU
|
||||
zyPHPP65VvZJs2lF3yvF+0NY3roQTCkVNoxiA9rwu2TEay3mTFxF5N9jypNu4kDs
|
||||
cuPgJSW8U68XUvDIeebNKEegxSWDJfND8ARr7OoMKSeaU09mUk3eNXwCQ7LEqU9r
|
||||
iXyRcIzZWuaW+HBMI5PprvE00yow3EFrSWFptmf8X4W5pIK1CVU1Lj6b6XKssPam
|
||||
WK72M9CJrulvtN+SnuoF3dB7FbARstevR5dtdREY9KdT2xEEOj3f8c/JEYCLZkZV
|
||||
HH/9tflDeQcplTEkHoFEj0aIJ3bS9OQqjghCZWerJDxlFrRxWySbclsCpF0jQxA=
|
||||
=YpT0
|
||||
-----END PGP SIGNATURE-----
|
3
libvirt-4.8.0.tar.xz
Normal file
3
libvirt-4.8.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c2fd7112d6689fbb4d700b31c01aadd8a0eb275e127dc959cdc166f5f60b3032
|
||||
size 14739652
|
10
libvirt-4.8.0.tar.xz.asc
Normal file
10
libvirt-4.8.0.tar.xz.asc
Normal file
@ -0,0 +1,10 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQEcBAABAgAGBQJbsjv9AAoJEBVYiyZZa+pdHs8H/2Vq5LT4yMFlSA6gephfgPkV
|
||||
+I8lITiZleJuQLDN73iUrUvCw2rOY0B5s0TRAwUIdh4t0dtszJt2X+MsaLY+n3dB
|
||||
19WZSTGtwOy/gd5NNPz8ua2Z4KH1DPcme2pMkqurwsmu+6FBnl+gVZYZeZm4S1gl
|
||||
C/8JZu/5VDCbN/HDgQQ1fGlgSZZZ5JwLoHF6USg3GDEOO20B4LUeOiy5Vgp/B8+T
|
||||
7C0Jf4KS6rsH5HXw63ATrTWO/XYbDeoVYXgWe9tugsyVO8mzoF/Odu49Pkc2Kzp5
|
||||
Sdod9MsAIFgZLKNCw3izCaCpf2Xdwwz7D3wF7BIdKsVgUfX52Xk84/YwyHT2O2Q=
|
||||
=w6sZ
|
||||
-----END PGP SIGNATURE-----
|
@ -2,10 +2,10 @@ Add POWER8 v2.0 and v2.1 to cpu map XML
|
||||
|
||||
From: <ro@suse.de>
|
||||
|
||||
Index: libvirt-4.7.0/src/cpu_map/ppc64_POWER8.xml
|
||||
Index: libvirt-4.8.0/src/cpu_map/ppc64_POWER8.xml
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/cpu_map/ppc64_POWER8.xml
|
||||
+++ libvirt-4.7.0/src/cpu_map/ppc64_POWER8.xml
|
||||
--- libvirt-4.8.0.orig/src/cpu_map/ppc64_POWER8.xml
|
||||
+++ libvirt-4.8.0/src/cpu_map/ppc64_POWER8.xml
|
||||
@@ -4,5 +4,7 @@
|
||||
<pvr value='0x004b0000' mask='0xffff0000'/>
|
||||
<pvr value='0x004c0000' mask='0xffff0000'/>
|
||||
|
@ -1,7 +1,7 @@
|
||||
Index: libvirt-4.7.0/configure.ac
|
||||
Index: libvirt-4.8.0/configure.ac
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/configure.ac
|
||||
+++ libvirt-4.7.0/configure.ac
|
||||
--- libvirt-4.8.0.orig/configure.ac
|
||||
+++ libvirt-4.8.0/configure.ac
|
||||
@@ -256,6 +256,7 @@ LIBVIRT_ARG_LIBSSH
|
||||
LIBVIRT_ARG_LIBXML
|
||||
LIBVIRT_ARG_MACVTAP
|
||||
@ -26,11 +26,11 @@ Index: libvirt-4.7.0/configure.ac
|
||||
LIBVIRT_RESULT_NLS
|
||||
LIBVIRT_RESULT_NSS
|
||||
LIBVIRT_RESULT_NUMACTL
|
||||
Index: libvirt-4.7.0/tools/virsh.c
|
||||
Index: libvirt-4.8.0/tools/virsh.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/tools/virsh.c
|
||||
+++ libvirt-4.7.0/tools/virsh.c
|
||||
@@ -575,6 +575,8 @@ virshShowVersion(vshControl *ctl ATTRIBU
|
||||
--- libvirt-4.8.0.orig/tools/virsh.c
|
||||
+++ libvirt-4.8.0/tools/virsh.c
|
||||
@@ -570,6 +570,8 @@ virshShowVersion(vshControl *ctl ATTRIBU
|
||||
vshPrint(ctl, " Interface");
|
||||
# if defined(WITH_NETCF)
|
||||
vshPrint(ctl, " netcf");
|
||||
@ -39,10 +39,10 @@ Index: libvirt-4.7.0/tools/virsh.c
|
||||
# elif defined(WITH_UDEV)
|
||||
vshPrint(ctl, " udev");
|
||||
# endif
|
||||
Index: libvirt-4.7.0/src/interface/interface_backend_netcf.c
|
||||
Index: libvirt-4.8.0/src/interface/interface_backend_netcf.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/interface/interface_backend_netcf.c
|
||||
+++ libvirt-4.7.0/src/interface/interface_backend_netcf.c
|
||||
--- libvirt-4.8.0.orig/src/interface/interface_backend_netcf.c
|
||||
+++ libvirt-4.8.0/src/interface/interface_backend_netcf.c
|
||||
@@ -23,7 +23,12 @@
|
||||
|
||||
#include <config.h>
|
||||
@ -126,10 +126,10 @@ Index: libvirt-4.7.0/src/interface/interface_backend_netcf.c
|
||||
if (virRegisterConnectDriver(&interfaceConnectDriver, false) < 0)
|
||||
return -1;
|
||||
if (virSetSharedInterfaceDriver(&interfaceDriver) < 0)
|
||||
Index: libvirt-4.7.0/src/interface/interface_driver.c
|
||||
Index: libvirt-4.8.0/src/interface/interface_driver.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/interface/interface_driver.c
|
||||
+++ libvirt-4.7.0/src/interface/interface_driver.c
|
||||
--- libvirt-4.8.0.orig/src/interface/interface_driver.c
|
||||
+++ libvirt-4.8.0/src/interface/interface_driver.c
|
||||
@@ -30,8 +30,15 @@ interfaceRegister(void)
|
||||
if (netcfIfaceRegister() == 0)
|
||||
return 0;
|
||||
@ -147,10 +147,10 @@ Index: libvirt-4.7.0/src/interface/interface_driver.c
|
||||
if (udevIfaceRegister() == 0)
|
||||
return 0;
|
||||
#endif /* WITH_UDEV */
|
||||
Index: libvirt-4.7.0/m4/virt-netcontrol.m4
|
||||
Index: libvirt-4.8.0/m4/virt-netcontrol.m4
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ libvirt-4.7.0/m4/virt-netcontrol.m4
|
||||
+++ libvirt-4.8.0/m4/virt-netcontrol.m4
|
||||
@@ -0,0 +1,39 @@
|
||||
+dnl The libnetcontrol library
|
||||
+dnl
|
||||
@ -191,10 +191,10 @@ Index: libvirt-4.7.0/m4/virt-netcontrol.m4
|
||||
+AC_DEFUN([LIBVIRT_RESULT_NETCONTROL],[
|
||||
+ LIBVIRT_RESULT_LIB([NETCONTROL])
|
||||
+])
|
||||
Index: libvirt-4.7.0/src/interface/Makefile.inc.am
|
||||
Index: libvirt-4.8.0/src/interface/Makefile.inc.am
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/interface/Makefile.inc.am
|
||||
+++ libvirt-4.7.0/src/interface/Makefile.inc.am
|
||||
--- libvirt-4.8.0.orig/src/interface/Makefile.inc.am
|
||||
+++ libvirt-4.8.0/src/interface/Makefile.inc.am
|
||||
@@ -4,6 +4,7 @@ INTERFACE_DRIVER_SOURCES = \
|
||||
$(NULL)
|
||||
|
||||
|
@ -1,3 +1,16 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 2 19:55:14 UTC 2018 - jfehlig@suse.com
|
||||
|
||||
- Update to libvirt 4.8.0
|
||||
- Many incremental improvements and bug fixes, see
|
||||
http://libvirt.org/news.html
|
||||
- Dropped patches:
|
||||
60b4fd90-libxl-rm-vm-finish-phase.patch,
|
||||
e39c66d3-libxl-fix-p2p-migration.patch,
|
||||
47da84e0-libxl-fix-job-handling-migsrc.patch,
|
||||
0149464a-libxl-fix-job-handling-migdst.patch,
|
||||
5ea2abb3-libxl-join-mig-rcv-thread.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 24 10:42:27 UTC 2018 - Jan Engelhardt <jengelh@inai.de>
|
||||
|
||||
|
14
libvirt.spec
14
libvirt.spec
@ -12,7 +12,7 @@
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
@ -185,7 +185,7 @@
|
||||
|
||||
Name: libvirt
|
||||
Url: http://libvirt.org/
|
||||
Version: 4.7.0
|
||||
Version: 4.8.0
|
||||
Release: 0
|
||||
Summary: Library providing a virtualization API
|
||||
License: LGPL-2.1-or-later
|
||||
@ -339,11 +339,6 @@ Source6: libvirtd-relocation-server.xml
|
||||
Source99: baselibs.conf
|
||||
Source100: %{name}-rpmlintrc
|
||||
# Upstream patches
|
||||
Patch0: 60b4fd90-libxl-rm-vm-finish-phase.patch
|
||||
Patch1: e39c66d3-libxl-fix-p2p-migration.patch
|
||||
Patch2: 47da84e0-libxl-fix-job-handling-migsrc.patch
|
||||
Patch3: 0149464a-libxl-fix-job-handling-migdst.patch
|
||||
Patch4: 5ea2abb3-libxl-join-mig-rcv-thread.patch
|
||||
# Patches pending upstream review
|
||||
Patch100: libxl-dom-reset.patch
|
||||
Patch101: network-don-t-use-dhcp-authoritative-on-static-netwo.patch
|
||||
@ -906,11 +901,6 @@ libvirt plugin for NSS for translating domain names into IP addresses.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch100 -p1
|
||||
%patch101 -p1
|
||||
%patch150 -p1
|
||||
|
@ -8,11 +8,11 @@ Date: Mon Jun 23 15:51:20 2014 -0600
|
||||
option, but domainReset can be implemented in the libxl driver by
|
||||
forcibly destroying the domain and starting it again.
|
||||
|
||||
Index: libvirt-4.7.0/src/libxl/libxl_driver.c
|
||||
Index: libvirt-4.8.0/src/libxl/libxl_driver.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/libxl/libxl_driver.c
|
||||
+++ libvirt-4.7.0/src/libxl/libxl_driver.c
|
||||
@@ -1344,6 +1344,61 @@ libxlDomainReboot(virDomainPtr dom, unsi
|
||||
--- libvirt-4.8.0.orig/src/libxl/libxl_driver.c
|
||||
+++ libvirt-4.8.0/src/libxl/libxl_driver.c
|
||||
@@ -1355,6 +1355,61 @@ libxlDomainReboot(virDomainPtr dom, unsi
|
||||
}
|
||||
|
||||
static int
|
||||
@ -74,11 +74,11 @@ Index: libvirt-4.7.0/src/libxl/libxl_driver.c
|
||||
libxlDomainDestroyFlags(virDomainPtr dom,
|
||||
unsigned int flags)
|
||||
{
|
||||
@@ -6376,6 +6431,7 @@ static virHypervisorDriver libxlHypervis
|
||||
@@ -6510,6 +6565,7 @@ static virHypervisorDriver libxlHypervis
|
||||
.domainShutdown = libxlDomainShutdown, /* 0.9.0 */
|
||||
.domainShutdownFlags = libxlDomainShutdownFlags, /* 0.9.10 */
|
||||
.domainReboot = libxlDomainReboot, /* 0.9.0 */
|
||||
+ .domainReset = libxlDomainReset, /* 1.2.16 */
|
||||
.domainDestroy = libxlDomainDestroy, /* 0.9.0 */
|
||||
.domainDestroyFlags = libxlDomainDestroyFlags, /* 0.9.4 */
|
||||
.domainGetOSType = libxlDomainGetOSType, /* 0.9.0 */
|
||||
#ifdef LIBXL_HAVE_DOMAIN_SUSPEND_ONLY
|
||||
|
@ -8,10 +8,10 @@ as the default <emulator>, instead of the qemu-xen one.
|
||||
|
||||
See FATE#320638 for details.
|
||||
|
||||
Index: libvirt-4.7.0/src/libxl/libxl_capabilities.c
|
||||
Index: libvirt-4.8.0/src/libxl/libxl_capabilities.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/libxl/libxl_capabilities.c
|
||||
+++ libvirt-4.7.0/src/libxl/libxl_capabilities.c
|
||||
--- libvirt-4.8.0.orig/src/libxl/libxl_capabilities.c
|
||||
+++ libvirt-4.8.0/src/libxl/libxl_capabilities.c
|
||||
@@ -38,6 +38,7 @@
|
||||
#include "libxl_capabilities.h"
|
||||
#include "cpu/cpu_x86.h"
|
||||
|
@ -3,11 +3,11 @@ https://bugzilla.novell.com/show_bug.cgi?id=879425
|
||||
src/libxl/libxl_conf.c | 25 +++++++++++++++++++++++++
|
||||
1 file changed, 25 insertions(+)
|
||||
|
||||
Index: libvirt-4.7.0/src/libxl/libxl_conf.c
|
||||
Index: libvirt-4.8.0/src/libxl/libxl_conf.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/libxl/libxl_conf.c
|
||||
+++ libvirt-4.7.0/src/libxl/libxl_conf.c
|
||||
@@ -837,6 +837,30 @@ libxlDiskSetDiscard(libxl_device_disk *x
|
||||
--- libvirt-4.8.0.orig/src/libxl/libxl_conf.c
|
||||
+++ libvirt-4.8.0/src/libxl/libxl_conf.c
|
||||
@@ -848,6 +848,30 @@ libxlDiskSetDiscard(libxl_device_disk *x
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -38,7 +38,7 @@ Index: libvirt-4.7.0/src/libxl/libxl_conf.c
|
||||
static char *
|
||||
libxlMakeNetworkDiskSrcStr(virStorageSourcePtr src,
|
||||
const char *username,
|
||||
@@ -1085,6 +1109,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
|
||||
@@ -1096,6 +1120,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
|
||||
x_disk->is_cdrom = l_disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM ? 1 : 0;
|
||||
if (libxlDiskSetDiscard(x_disk, l_disk->discard) < 0)
|
||||
return -1;
|
||||
|
@ -16,10 +16,10 @@ Signed-off-by: Jim Fehlig <jfehlig@suse.com>
|
||||
tools/virsh.pod | 8 ++++++++
|
||||
6 files changed, 125 insertions(+), 6 deletions(-)
|
||||
|
||||
Index: libvirt-4.7.0/include/libvirt/libvirt-domain.h
|
||||
Index: libvirt-4.8.0/include/libvirt/libvirt-domain.h
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/include/libvirt/libvirt-domain.h
|
||||
+++ libvirt-4.7.0/include/libvirt/libvirt-domain.h
|
||||
--- libvirt-4.8.0.orig/include/libvirt/libvirt-domain.h
|
||||
+++ libvirt-4.8.0/include/libvirt/libvirt-domain.h
|
||||
@@ -1015,6 +1015,31 @@ typedef enum {
|
||||
*/
|
||||
# define VIR_MIGRATE_PARAM_AUTO_CONVERGE_INCREMENT "auto_converge.increment"
|
||||
@ -52,11 +52,11 @@ Index: libvirt-4.7.0/include/libvirt/libvirt-domain.h
|
||||
/* Domain migration. */
|
||||
virDomainPtr virDomainMigrate (virDomainPtr domain, virConnectPtr dconn,
|
||||
unsigned long flags, const char *dname,
|
||||
Index: libvirt-4.7.0/src/libxl/libxl_driver.c
|
||||
Index: libvirt-4.8.0/src/libxl/libxl_driver.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/libxl/libxl_driver.c
|
||||
+++ libvirt-4.7.0/src/libxl/libxl_driver.c
|
||||
@@ -5985,6 +5985,9 @@ libxlDomainMigratePerform3Params(virDoma
|
||||
--- libvirt-4.8.0.orig/src/libxl/libxl_driver.c
|
||||
+++ libvirt-4.8.0/src/libxl/libxl_driver.c
|
||||
@@ -6119,6 +6119,9 @@ libxlDomainMigratePerform3Params(virDoma
|
||||
const char *dname = NULL;
|
||||
const char *uri = NULL;
|
||||
int ret = -1;
|
||||
@ -66,7 +66,7 @@ Index: libvirt-4.7.0/src/libxl/libxl_driver.c
|
||||
|
||||
#ifdef LIBXL_HAVE_NO_SUSPEND_RESUME
|
||||
virReportUnsupportedError();
|
||||
@@ -6001,6 +6004,18 @@ libxlDomainMigratePerform3Params(virDoma
|
||||
@@ -6135,6 +6138,18 @@ libxlDomainMigratePerform3Params(virDoma
|
||||
virTypedParamsGetString(params, nparams,
|
||||
VIR_MIGRATE_PARAM_DEST_NAME,
|
||||
&dname) < 0 ||
|
||||
@ -85,7 +85,7 @@ Index: libvirt-4.7.0/src/libxl/libxl_driver.c
|
||||
virTypedParamsGetString(params, nparams,
|
||||
VIR_MIGRATE_PARAM_URI,
|
||||
&uri) < 0)
|
||||
@@ -6015,11 +6030,11 @@ libxlDomainMigratePerform3Params(virDoma
|
||||
@@ -6149,11 +6164,11 @@ libxlDomainMigratePerform3Params(virDoma
|
||||
|
||||
if ((flags & (VIR_MIGRATE_TUNNELLED | VIR_MIGRATE_PEER2PEER))) {
|
||||
if (libxlDomainMigrationSrcPerformP2P(driver, vm, dom->conn, dom_xml,
|
||||
@ -99,10 +99,10 @@ Index: libvirt-4.7.0/src/libxl/libxl_driver.c
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
Index: libvirt-4.7.0/src/libxl/libxl_migration.c
|
||||
Index: libvirt-4.8.0/src/libxl/libxl_migration.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/libxl/libxl_migration.c
|
||||
+++ libvirt-4.7.0/src/libxl/libxl_migration.c
|
||||
--- libvirt-4.8.0.orig/src/libxl/libxl_migration.c
|
||||
+++ libvirt-4.8.0/src/libxl/libxl_migration.c
|
||||
@@ -346,18 +346,39 @@ libxlMigrateDstReceive(virNetSocketPtr s
|
||||
static int
|
||||
libxlDoMigrateSrcSend(libxlDriverPrivatePtr driver,
|
||||
@ -264,10 +264,10 @@ Index: libvirt-4.7.0/src/libxl/libxl_migration.c
|
||||
virObjectLock(vm);
|
||||
|
||||
if (ret < 0) {
|
||||
Index: libvirt-4.7.0/src/libxl/libxl_migration.h
|
||||
Index: libvirt-4.8.0/src/libxl/libxl_migration.h
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/libxl/libxl_migration.h
|
||||
+++ libvirt-4.7.0/src/libxl/libxl_migration.h
|
||||
--- libvirt-4.8.0.orig/src/libxl/libxl_migration.h
|
||||
+++ libvirt-4.8.0/src/libxl/libxl_migration.h
|
||||
@@ -39,6 +39,10 @@
|
||||
VIR_MIGRATE_PARAM_URI, VIR_TYPED_PARAM_STRING, \
|
||||
VIR_MIGRATE_PARAM_DEST_NAME, VIR_TYPED_PARAM_STRING, \
|
||||
@ -312,11 +312,11 @@ Index: libvirt-4.7.0/src/libxl/libxl_migration.h
|
||||
|
||||
virDomainPtr
|
||||
libxlDomainMigrationDstFinish(virConnectPtr dconn,
|
||||
Index: libvirt-4.7.0/tools/virsh-domain.c
|
||||
Index: libvirt-4.8.0/tools/virsh-domain.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/tools/virsh-domain.c
|
||||
+++ libvirt-4.7.0/tools/virsh-domain.c
|
||||
@@ -10425,6 +10425,22 @@ static const vshCmdOptDef opts_migrate[]
|
||||
--- libvirt-4.8.0.orig/tools/virsh-domain.c
|
||||
+++ libvirt-4.8.0/tools/virsh-domain.c
|
||||
@@ -10450,6 +10450,22 @@ static const vshCmdOptDef opts_migrate[]
|
||||
.type = VSH_OT_BOOL,
|
||||
.help = N_("use TLS for migration")
|
||||
},
|
||||
@ -339,7 +339,7 @@ Index: libvirt-4.7.0/tools/virsh-domain.c
|
||||
{.name = NULL}
|
||||
};
|
||||
|
||||
@@ -10448,6 +10464,7 @@ doMigrate(void *opaque)
|
||||
@@ -10473,6 +10489,7 @@ doMigrate(void *opaque)
|
||||
unsigned long long ullOpt = 0;
|
||||
int rv;
|
||||
virConnectPtr dconn = data->dconn;
|
||||
@ -347,7 +347,7 @@ Index: libvirt-4.7.0/tools/virsh-domain.c
|
||||
|
||||
sigemptyset(&sigmask);
|
||||
sigaddset(&sigmask, SIGINT);
|
||||
@@ -10567,6 +10584,27 @@ doMigrate(void *opaque)
|
||||
@@ -10592,6 +10609,27 @@ doMigrate(void *opaque)
|
||||
goto save_error;
|
||||
}
|
||||
|
||||
@ -375,10 +375,10 @@ Index: libvirt-4.7.0/tools/virsh-domain.c
|
||||
if (vshCommandOptStringReq(ctl, cmd, "xml", &opt) < 0)
|
||||
goto out;
|
||||
if (opt) {
|
||||
Index: libvirt-4.7.0/tools/virsh.pod
|
||||
Index: libvirt-4.8.0/tools/virsh.pod
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/tools/virsh.pod
|
||||
+++ libvirt-4.7.0/tools/virsh.pod
|
||||
--- libvirt-4.8.0.orig/tools/virsh.pod
|
||||
+++ libvirt-4.8.0/tools/virsh.pod
|
||||
@@ -1937,6 +1937,14 @@ Providing I<--tls> causes the migration
|
||||
the migration of the domain. Usage requires proper TLS setup for both source
|
||||
and target.
|
||||
|
@ -7,11 +7,11 @@ and npiv.
|
||||
|
||||
For more details, see bsc#954872 and FATE#319810
|
||||
|
||||
Index: libvirt-4.7.0/src/libxl/libxl_conf.c
|
||||
Index: libvirt-4.8.0/src/libxl/libxl_conf.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/libxl/libxl_conf.c
|
||||
+++ libvirt-4.7.0/src/libxl/libxl_conf.c
|
||||
@@ -837,6 +837,25 @@ libxlDiskSetDiscard(libxl_device_disk *x
|
||||
--- libvirt-4.8.0.orig/src/libxl/libxl_conf.c
|
||||
+++ libvirt-4.8.0/src/libxl/libxl_conf.c
|
||||
@@ -848,6 +848,25 @@ libxlDiskSetDiscard(libxl_device_disk *x
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -37,7 +37,7 @@ Index: libvirt-4.7.0/src/libxl/libxl_conf.c
|
||||
static void
|
||||
libxlDiskSetCacheMode(libxl_device_disk *x_disk, int cachemode)
|
||||
{
|
||||
@@ -982,6 +1001,7 @@ libxlMakeNetworkDiskSrc(virStorageSource
|
||||
@@ -993,6 +1012,7 @@ libxlMakeNetworkDiskSrc(virStorageSource
|
||||
int
|
||||
libxlMakeDisk(virDomainDiskDefPtr l_disk, libxl_device_disk *x_disk)
|
||||
{
|
||||
@ -45,7 +45,7 @@ Index: libvirt-4.7.0/src/libxl/libxl_conf.c
|
||||
const char *driver = virDomainDiskGetDriver(l_disk);
|
||||
int format = virDomainDiskGetFormat(l_disk);
|
||||
int actual_type = virStorageSourceGetActualType(l_disk->src);
|
||||
@@ -997,7 +1017,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
|
||||
@@ -1008,7 +1028,7 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
|
||||
if (libxlMakeNetworkDiskSrc(l_disk->src, &x_disk->pdev_path) < 0)
|
||||
return -1;
|
||||
} else {
|
||||
@ -54,7 +54,7 @@ Index: libvirt-4.7.0/src/libxl/libxl_conf.c
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -1110,6 +1130,9 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
|
||||
@@ -1121,6 +1141,9 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk
|
||||
if (libxlDiskSetDiscard(x_disk, l_disk->discard) < 0)
|
||||
return -1;
|
||||
libxlDiskSetCacheMode(x_disk, l_disk->cachemode);
|
||||
|
@ -13,11 +13,11 @@ device with the same name that is being created.
|
||||
src/lxc/lxc_process.c | 1 +
|
||||
3 files changed, 4 insertions(+)
|
||||
|
||||
Index: libvirt-4.7.0/src/lxc/lxc_controller.c
|
||||
Index: libvirt-4.8.0/src/lxc/lxc_controller.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/lxc/lxc_controller.c
|
||||
+++ libvirt-4.7.0/src/lxc/lxc_controller.c
|
||||
@@ -73,6 +73,7 @@
|
||||
--- libvirt-4.8.0.orig/src/lxc/lxc_controller.c
|
||||
+++ libvirt-4.8.0/src/lxc/lxc_controller.c
|
||||
@@ -72,6 +72,7 @@
|
||||
#include "rpc/virnetdaemon.h"
|
||||
#include "virstring.h"
|
||||
#include "virgettext.h"
|
||||
@ -25,7 +25,7 @@ Index: libvirt-4.7.0/src/lxc/lxc_controller.c
|
||||
|
||||
#define VIR_FROM_THIS VIR_FROM_LXC
|
||||
|
||||
@@ -1999,6 +2000,7 @@ static int virLXCControllerDeleteInterfa
|
||||
@@ -1998,6 +1999,7 @@ static int virLXCControllerDeleteInterfa
|
||||
if (virNetDevVethDelete(ctrl->veths[i]) < 0)
|
||||
ret = -1;
|
||||
}
|
||||
@ -33,11 +33,11 @@ Index: libvirt-4.7.0/src/lxc/lxc_controller.c
|
||||
|
||||
return ret;
|
||||
}
|
||||
Index: libvirt-4.7.0/src/lxc/lxc_driver.c
|
||||
Index: libvirt-4.8.0/src/lxc/lxc_driver.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/lxc/lxc_driver.c
|
||||
+++ libvirt-4.7.0/src/lxc/lxc_driver.c
|
||||
@@ -74,6 +74,7 @@
|
||||
--- libvirt-4.8.0.orig/src/lxc/lxc_driver.c
|
||||
+++ libvirt-4.8.0/src/lxc/lxc_driver.c
|
||||
@@ -73,6 +73,7 @@
|
||||
#include "virtime.h"
|
||||
#include "virtypedparam.h"
|
||||
#include "viruri.h"
|
||||
@ -45,7 +45,7 @@ Index: libvirt-4.7.0/src/lxc/lxc_driver.c
|
||||
#include "virstring.h"
|
||||
#include "viraccessapicheck.h"
|
||||
#include "viraccessapichecklxc.h"
|
||||
@@ -3945,6 +3946,7 @@ lxcDomainAttachDeviceNetLive(virConnectP
|
||||
@@ -3944,6 +3945,7 @@ lxcDomainAttachDeviceNetLive(virConnectP
|
||||
case VIR_DOMAIN_NET_TYPE_NETWORK:
|
||||
case VIR_DOMAIN_NET_TYPE_ETHERNET:
|
||||
ignore_value(virNetDevVethDelete(veth));
|
||||
@ -53,7 +53,7 @@ Index: libvirt-4.7.0/src/lxc/lxc_driver.c
|
||||
break;
|
||||
|
||||
case VIR_DOMAIN_NET_TYPE_DIRECT:
|
||||
@@ -4388,6 +4390,7 @@ lxcDomainDetachDeviceNetLive(virDomainOb
|
||||
@@ -4387,6 +4389,7 @@ lxcDomainDetachDeviceNetLive(virDomainOb
|
||||
virDomainAuditNet(vm, detach, NULL, "detach", false);
|
||||
goto cleanup;
|
||||
}
|
||||
@ -61,10 +61,10 @@ Index: libvirt-4.7.0/src/lxc/lxc_driver.c
|
||||
break;
|
||||
|
||||
/* It'd be nice to support this, but with macvlan
|
||||
Index: libvirt-4.7.0/src/lxc/lxc_process.c
|
||||
Index: libvirt-4.8.0/src/lxc/lxc_process.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/lxc/lxc_process.c
|
||||
+++ libvirt-4.7.0/src/lxc/lxc_process.c
|
||||
--- libvirt-4.8.0.orig/src/lxc/lxc_process.c
|
||||
+++ libvirt-4.8.0/src/lxc/lxc_process.c
|
||||
@@ -51,6 +51,7 @@
|
||||
#include "viratomic.h"
|
||||
#include "virprocess.h"
|
||||
|
@ -17,11 +17,11 @@ Signed-off-by: Martin Wilck <mwilck@suse.com>
|
||||
tests/networkxml2confdata/dhcp6host-routed-network.conf | 1 -
|
||||
2 files changed, 8 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: libvirt-4.7.0/src/network/bridge_driver.c
|
||||
Index: libvirt-4.8.0/src/network/bridge_driver.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/network/bridge_driver.c
|
||||
+++ libvirt-4.7.0/src/network/bridge_driver.c
|
||||
@@ -1463,7 +1463,14 @@ networkDnsmasqConfContents(virNetworkObj
|
||||
--- libvirt-4.8.0.orig/src/network/bridge_driver.c
|
||||
+++ libvirt-4.8.0/src/network/bridge_driver.c
|
||||
@@ -1458,7 +1458,14 @@ networkDnsmasqConfContents(virNetworkObj
|
||||
if (VIR_SOCKET_ADDR_IS_FAMILY(&ipdef->address, AF_INET)) {
|
||||
if (ipdef->nranges || ipdef->nhosts) {
|
||||
virBufferAddLit(&configbuf, "dhcp-no-override\n");
|
||||
@ -37,10 +37,10 @@ Index: libvirt-4.7.0/src/network/bridge_driver.c
|
||||
}
|
||||
|
||||
if (ipdef->tftproot) {
|
||||
Index: libvirt-4.7.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
|
||||
Index: libvirt-4.8.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/tests/networkxml2confdata/dhcp6host-routed-network.conf
|
||||
+++ libvirt-4.7.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
|
||||
--- libvirt-4.8.0.orig/tests/networkxml2confdata/dhcp6host-routed-network.conf
|
||||
+++ libvirt-4.8.0/tests/networkxml2confdata/dhcp6host-routed-network.conf
|
||||
@@ -10,7 +10,6 @@ bind-dynamic
|
||||
interface=virbr1
|
||||
dhcp-range=192.168.122.1,static
|
||||
|
@ -2,10 +2,10 @@ Canonicalize hostarch name ppc64le to ppc64
|
||||
|
||||
See bnc#894956
|
||||
|
||||
Index: libvirt-4.7.0/src/util/virarch.c
|
||||
Index: libvirt-4.8.0/src/util/virarch.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/util/virarch.c
|
||||
+++ libvirt-4.7.0/src/util/virarch.c
|
||||
--- libvirt-4.8.0.orig/src/util/virarch.c
|
||||
+++ libvirt-4.8.0/src/util/virarch.c
|
||||
@@ -172,6 +172,8 @@ virArch virArchFromHost(void)
|
||||
arch = VIR_ARCH_I686;
|
||||
} else if (STREQ(ut.machine, "amd64")) {
|
||||
|
@ -1,7 +1,7 @@
|
||||
Index: libvirt-4.7.0/examples/apparmor/libvirt-qemu
|
||||
Index: libvirt-4.8.0/examples/apparmor/libvirt-qemu
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/examples/apparmor/libvirt-qemu
|
||||
+++ libvirt-4.7.0/examples/apparmor/libvirt-qemu
|
||||
--- libvirt-4.8.0.orig/examples/apparmor/libvirt-qemu
|
||||
+++ libvirt-4.8.0/examples/apparmor/libvirt-qemu
|
||||
@@ -221,3 +221,6 @@
|
||||
# required for sasl GSSAPI plugin
|
||||
/etc/gss/mech.d/ r,
|
||||
|
@ -8,11 +8,11 @@ Subject: [PATCH] support managed pci devices in xen driver
|
||||
src/xenxs/xen_xm.c | 28 +++++++++++++++++++++++++++-
|
||||
2 files changed, 35 insertions(+), 15 deletions(-)
|
||||
|
||||
Index: libvirt-4.7.0/src/xenconfig/xen_common.c
|
||||
Index: libvirt-4.8.0/src/xenconfig/xen_common.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/xenconfig/xen_common.c
|
||||
+++ libvirt-4.7.0/src/xenconfig/xen_common.c
|
||||
@@ -402,12 +402,19 @@ xenParsePCI(char *entry)
|
||||
--- libvirt-4.8.0.orig/src/xenconfig/xen_common.c
|
||||
+++ libvirt-4.8.0/src/xenconfig/xen_common.c
|
||||
@@ -390,12 +390,19 @@ xenParsePCI(char *entry)
|
||||
int busID;
|
||||
int slotID;
|
||||
int funcID;
|
||||
@ -32,7 +32,7 @@ Index: libvirt-4.7.0/src/xenconfig/xen_common.c
|
||||
if (!(nextkey = strchr(key, ':')))
|
||||
return NULL;
|
||||
if (virStrncpy(domain, key, (nextkey - key), sizeof(domain)) < 0) {
|
||||
@@ -452,10 +459,30 @@ xenParsePCI(char *entry)
|
||||
@@ -440,10 +447,30 @@ xenParsePCI(char *entry)
|
||||
if (virStrToLong_i(func, NULL, 16, &funcID) < 0)
|
||||
return NULL;
|
||||
|
||||
@ -64,10 +64,10 @@ Index: libvirt-4.7.0/src/xenconfig/xen_common.c
|
||||
hostdev->source.subsys.type = VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI;
|
||||
hostdev->source.subsys.u.pci.addr.domain = domainID;
|
||||
hostdev->source.subsys.u.pci.addr.bus = busID;
|
||||
Index: libvirt-4.7.0/src/xenconfig/xen_sxpr.c
|
||||
Index: libvirt-4.8.0/src/xenconfig/xen_sxpr.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/xenconfig/xen_sxpr.c
|
||||
+++ libvirt-4.7.0/src/xenconfig/xen_sxpr.c
|
||||
--- libvirt-4.8.0.orig/src/xenconfig/xen_sxpr.c
|
||||
+++ libvirt-4.8.0/src/xenconfig/xen_sxpr.c
|
||||
@@ -1057,6 +1057,7 @@ xenParseSxprPCI(virDomainDefPtr def,
|
||||
int busID;
|
||||
int slotID;
|
||||
|
@ -8,10 +8,10 @@ It was also noticed that the per-domain profiles need a libnl rule
|
||||
to squelch a denial when starting confined domains.
|
||||
|
||||
Found while investigating bsc#1058847
|
||||
Index: libvirt-4.7.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper
|
||||
Index: libvirt-4.8.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/examples/apparmor/usr.lib.libvirt.virt-aa-helper
|
||||
+++ libvirt-4.7.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper
|
||||
--- libvirt-4.8.0.orig/examples/apparmor/usr.lib.libvirt.virt-aa-helper
|
||||
+++ libvirt-4.8.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper
|
||||
@@ -17,7 +17,7 @@ profile virt-aa-helper /usr/{lib,lib64}/
|
||||
owner @{PROC}/[0-9]*/status r,
|
||||
@{PROC}/filesystems r,
|
||||
@ -21,10 +21,10 @@ Index: libvirt-4.7.0/examples/apparmor/usr.lib.libvirt.virt-aa-helper
|
||||
|
||||
# for hostdev
|
||||
/sys/devices/ r,
|
||||
Index: libvirt-4.7.0/examples/apparmor/libvirt-qemu
|
||||
Index: libvirt-4.8.0/examples/apparmor/libvirt-qemu
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/examples/apparmor/libvirt-qemu
|
||||
+++ libvirt-4.7.0/examples/apparmor/libvirt-qemu
|
||||
--- libvirt-4.8.0.orig/examples/apparmor/libvirt-qemu
|
||||
+++ libvirt-4.8.0/examples/apparmor/libvirt-qemu
|
||||
@@ -62,6 +62,7 @@
|
||||
#/dev/fb* rw,
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
Adjust libvirt-guests service to conform to SUSE standards
|
||||
|
||||
Index: libvirt-4.7.0/tools/libvirt-guests.init.in
|
||||
Index: libvirt-4.8.0/tools/libvirt-guests.init.in
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/tools/libvirt-guests.init.in
|
||||
+++ libvirt-4.7.0/tools/libvirt-guests.init.in
|
||||
--- libvirt-4.8.0.orig/tools/libvirt-guests.init.in
|
||||
+++ libvirt-4.8.0/tools/libvirt-guests.init.in
|
||||
@@ -4,27 +4,27 @@
|
||||
# http://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/initscrcomconv.html
|
||||
#
|
||||
@ -46,10 +46,10 @@ Index: libvirt-4.7.0/tools/libvirt-guests.init.in
|
||||
+
|
||||
|
||||
exec @libexecdir@/libvirt-guests.sh "$@"
|
||||
Index: libvirt-4.7.0/tools/libvirt-guests.sh.in
|
||||
Index: libvirt-4.8.0/tools/libvirt-guests.sh.in
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/tools/libvirt-guests.sh.in
|
||||
+++ libvirt-4.7.0/tools/libvirt-guests.sh.in
|
||||
--- libvirt-4.8.0.orig/tools/libvirt-guests.sh.in
|
||||
+++ libvirt-4.8.0/tools/libvirt-guests.sh.in
|
||||
@@ -16,14 +16,13 @@
|
||||
# License along with this library. If not, see
|
||||
# <http://www.gnu.org/licenses/>.
|
||||
@ -209,10 +209,10 @@ Index: libvirt-4.7.0/tools/libvirt-guests.sh.in
|
||||
esac
|
||||
-exit $RETVAL
|
||||
+rc_exit
|
||||
Index: libvirt-4.7.0/tools/libvirt-guests.sysconf
|
||||
Index: libvirt-4.8.0/tools/libvirt-guests.sysconf
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/tools/libvirt-guests.sysconf
|
||||
+++ libvirt-4.7.0/tools/libvirt-guests.sysconf
|
||||
--- libvirt-4.8.0.orig/tools/libvirt-guests.sysconf
|
||||
+++ libvirt-4.8.0/tools/libvirt-guests.sysconf
|
||||
@@ -1,19 +1,29 @@
|
||||
+## Path: System/Virtualization/libvirt-guests
|
||||
+
|
||||
|
@ -3,10 +3,10 @@ Disable TLS by default
|
||||
On SUSE distros, the default is for libvirtd to listen only on the
|
||||
Unix Domain Socket. The libvirt client still provides remote access
|
||||
via a SSH tunnel.
|
||||
Index: libvirt-4.7.0/src/remote/libvirtd.conf
|
||||
Index: libvirt-4.8.0/src/remote/libvirtd.conf
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/remote/libvirtd.conf
|
||||
+++ libvirt-4.7.0/src/remote/libvirtd.conf
|
||||
--- libvirt-4.8.0.orig/src/remote/libvirtd.conf
|
||||
+++ libvirt-4.8.0/src/remote/libvirtd.conf
|
||||
@@ -18,8 +18,8 @@
|
||||
# It is necessary to setup a CA and issue server certificates before
|
||||
# using this capability.
|
||||
@ -18,10 +18,10 @@ Index: libvirt-4.7.0/src/remote/libvirtd.conf
|
||||
|
||||
# Listen for unencrypted TCP connections on the public TCP/IP port.
|
||||
# NB, must pass the --listen flag to the libvirtd process for this to
|
||||
Index: libvirt-4.7.0/src/remote/remote_daemon_config.c
|
||||
Index: libvirt-4.8.0/src/remote/remote_daemon_config.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/remote/remote_daemon_config.c
|
||||
+++ libvirt-4.7.0/src/remote/remote_daemon_config.c
|
||||
--- libvirt-4.8.0.orig/src/remote/remote_daemon_config.c
|
||||
+++ libvirt-4.8.0/src/remote/remote_daemon_config.c
|
||||
@@ -110,7 +110,7 @@ daemonConfigNew(bool privileged ATTRIBUT
|
||||
if (VIR_ALLOC(data) < 0)
|
||||
return NULL;
|
||||
@ -31,10 +31,10 @@ Index: libvirt-4.7.0/src/remote/remote_daemon_config.c
|
||||
data->listen_tcp = 0;
|
||||
|
||||
if (VIR_STRDUP(data->tls_port, LIBVIRTD_TLS_PORT) < 0 ||
|
||||
Index: libvirt-4.7.0/src/remote/test_libvirtd.aug.in
|
||||
Index: libvirt-4.8.0/src/remote/test_libvirtd.aug.in
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/remote/test_libvirtd.aug.in
|
||||
+++ libvirt-4.7.0/src/remote/test_libvirtd.aug.in
|
||||
--- libvirt-4.8.0.orig/src/remote/test_libvirtd.aug.in
|
||||
+++ libvirt-4.8.0/src/remote/test_libvirtd.aug.in
|
||||
@@ -2,7 +2,7 @@ module Test_libvirtd =
|
||||
::CONFIG::
|
||||
|
||||
|
@ -7,10 +7,10 @@ On SUSE distros, we promote libvirt and all the libvirt-based
|
||||
tools. If a user installs libvirt on their SUSE Xen host, then
|
||||
libvirt should be king and override xendomains. See bsc#1015348
|
||||
|
||||
Index: libvirt-4.7.0/src/remote/libvirtd.service.in
|
||||
Index: libvirt-4.8.0/src/remote/libvirtd.service.in
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/remote/libvirtd.service.in
|
||||
+++ libvirt-4.7.0/src/remote/libvirtd.service.in
|
||||
--- libvirt-4.8.0.orig/src/remote/libvirtd.service.in
|
||||
+++ libvirt-4.8.0/src/remote/libvirtd.service.in
|
||||
@@ -17,6 +17,8 @@ After=local-fs.target
|
||||
After=remote-fs.target
|
||||
After=systemd-logind.service
|
||||
|
@ -1,9 +1,9 @@
|
||||
Adjust libvirtd sysconfig file to conform to SUSE standards
|
||||
|
||||
Index: libvirt-4.7.0/src/remote/libvirtd.sysconf
|
||||
Index: libvirt-4.8.0/src/remote/libvirtd.sysconf
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/remote/libvirtd.sysconf
|
||||
+++ libvirt-4.7.0/src/remote/libvirtd.sysconf
|
||||
--- libvirt-4.8.0.orig/src/remote/libvirtd.sysconf
|
||||
+++ libvirt-4.8.0/src/remote/libvirtd.sysconf
|
||||
@@ -1,16 +1,25 @@
|
||||
+## Path: System/Virtualization/libvirt
|
||||
+
|
||||
|
@ -1,10 +1,10 @@
|
||||
Adjust paths of OVMF firmwares on SUSE distros
|
||||
|
||||
Index: libvirt-4.7.0/src/qemu/qemu.conf
|
||||
Index: libvirt-4.8.0/src/qemu/qemu.conf
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/qemu/qemu.conf
|
||||
+++ libvirt-4.7.0/src/qemu/qemu.conf
|
||||
@@ -769,10 +769,9 @@ security_default_confined = 0
|
||||
--- libvirt-4.8.0.orig/src/qemu/qemu.conf
|
||||
+++ libvirt-4.8.0/src/qemu/qemu.conf
|
||||
@@ -768,10 +768,9 @@ security_default_confined = 0
|
||||
# for x86_64 and i686, but it's AAVMF for aarch64. The libvirt default
|
||||
# follows this scheme.
|
||||
#nvram = [
|
||||
@ -18,11 +18,11 @@ Index: libvirt-4.7.0/src/qemu/qemu.conf
|
||||
#]
|
||||
|
||||
# The backend to use for handling stdout/stderr output from
|
||||
Index: libvirt-4.7.0/src/qemu/qemu_conf.c
|
||||
Index: libvirt-4.8.0/src/qemu/qemu_conf.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/qemu/qemu_conf.c
|
||||
+++ libvirt-4.7.0/src/qemu/qemu_conf.c
|
||||
@@ -122,10 +122,9 @@ void qemuDomainCmdlineDefFree(qemuDomain
|
||||
--- libvirt-4.8.0.orig/src/qemu/qemu_conf.c
|
||||
+++ libvirt-4.8.0/src/qemu/qemu_conf.c
|
||||
@@ -118,10 +118,9 @@ void qemuDomainCmdlineDefFree(qemuDomain
|
||||
|
||||
#ifndef DEFAULT_LOADER_NVRAM
|
||||
# define DEFAULT_LOADER_NVRAM \
|
||||
@ -36,11 +36,11 @@ Index: libvirt-4.7.0/src/qemu/qemu_conf.c
|
||||
#endif
|
||||
|
||||
|
||||
Index: libvirt-4.7.0/src/security/virt-aa-helper.c
|
||||
Index: libvirt-4.8.0/src/security/virt-aa-helper.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/security/virt-aa-helper.c
|
||||
+++ libvirt-4.7.0/src/security/virt-aa-helper.c
|
||||
@@ -515,7 +515,8 @@ valid_path(const char *path, const bool
|
||||
--- libvirt-4.8.0.orig/src/security/virt-aa-helper.c
|
||||
+++ libvirt-4.8.0/src/security/virt-aa-helper.c
|
||||
@@ -511,7 +511,8 @@ valid_path(const char *path, const bool
|
||||
"/usr/share/ovmf/", /* for OVMF images */
|
||||
"/usr/share/AAVMF/", /* for AAVMF images */
|
||||
"/usr/share/qemu-efi/", /* for AAVMF images */
|
||||
|
@ -7,10 +7,10 @@ suse-qemu-conf-secdriver.patch, suse-qemu-conf-lockmgr.patch,
|
||||
etc.), but for now they are all lumped together in this
|
||||
single patch.
|
||||
|
||||
Index: libvirt-4.7.0/src/qemu/qemu.conf
|
||||
Index: libvirt-4.8.0/src/qemu/qemu.conf
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/qemu/qemu.conf
|
||||
+++ libvirt-4.7.0/src/qemu/qemu.conf
|
||||
--- libvirt-4.8.0.orig/src/qemu/qemu.conf
|
||||
+++ libvirt-4.8.0/src/qemu/qemu.conf
|
||||
@@ -414,11 +414,20 @@
|
||||
# isolation, but it cannot appear in a list of drivers.
|
||||
#
|
||||
|
@ -1,9 +1,9 @@
|
||||
Adjust virtlockd sysconfig file to conform to SUSE standards
|
||||
|
||||
Index: libvirt-4.7.0/src/locking/virtlockd.sysconf
|
||||
Index: libvirt-4.8.0/src/locking/virtlockd.sysconf
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/locking/virtlockd.sysconf
|
||||
+++ libvirt-4.7.0/src/locking/virtlockd.sysconf
|
||||
--- libvirt-4.8.0.orig/src/locking/virtlockd.sysconf
|
||||
+++ libvirt-4.8.0/src/locking/virtlockd.sysconf
|
||||
@@ -1,3 +1,7 @@
|
||||
+## Path: System/Virtualization/virtlockd
|
||||
+
|
||||
|
@ -1,9 +1,9 @@
|
||||
Adjust virtlogd sysconfig file to conform to SUSE standards
|
||||
|
||||
Index: libvirt-4.7.0/src/logging/virtlogd.sysconf
|
||||
Index: libvirt-4.8.0/src/logging/virtlogd.sysconf
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/logging/virtlogd.sysconf
|
||||
+++ libvirt-4.7.0/src/logging/virtlogd.sysconf
|
||||
--- libvirt-4.8.0.orig/src/logging/virtlogd.sysconf
|
||||
+++ libvirt-4.8.0/src/logging/virtlogd.sysconf
|
||||
@@ -1,3 +1,7 @@
|
||||
+## Path: System/Virtualization/virtlogd
|
||||
+
|
||||
|
@ -1,7 +1,7 @@
|
||||
Index: libvirt-4.7.0/src/xenconfig/xen_sxpr.c
|
||||
Index: libvirt-4.8.0/src/xenconfig/xen_sxpr.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/xenconfig/xen_sxpr.c
|
||||
+++ libvirt-4.7.0/src/xenconfig/xen_sxpr.c
|
||||
--- libvirt-4.8.0.orig/src/xenconfig/xen_sxpr.c
|
||||
+++ libvirt-4.8.0/src/xenconfig/xen_sxpr.c
|
||||
@@ -387,7 +387,7 @@ xenParseSxprVifRate(const char *rate, un
|
||||
static int
|
||||
xenParseSxprDisks(virDomainDefPtr def,
|
||||
|
@ -6,10 +6,10 @@ and 'file'. This was implicitly done prior to commit 9673418c.
|
||||
|
||||
https://bugzilla.suse.com/show_bug.cgi?id=938228
|
||||
|
||||
Index: libvirt-4.7.0/src/xenconfig/xen_sxpr.c
|
||||
Index: libvirt-4.8.0/src/xenconfig/xen_sxpr.c
|
||||
===================================================================
|
||||
--- libvirt-4.7.0.orig/src/xenconfig/xen_sxpr.c
|
||||
+++ libvirt-4.7.0/src/xenconfig/xen_sxpr.c
|
||||
--- libvirt-4.8.0.orig/src/xenconfig/xen_sxpr.c
|
||||
+++ libvirt-4.8.0/src/xenconfig/xen_sxpr.c
|
||||
@@ -501,10 +501,11 @@ xenParseSxprDisks(virDomainDefPtr def,
|
||||
omnipotent, we can revisit this, perhaps stat()'ing
|
||||
the src file in question */
|
||||
|
Loading…
Reference in New Issue
Block a user