import libvirt-7.8.0-1.module+el8.6.0+12978+7d7a0321

This commit is contained in:
CentOS Sources 2021-10-27 22:32:57 +00:00 committed by Stepan Oksanichenko
parent a854a5b4c9
commit 6fe456789b
20 changed files with 347 additions and 691 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/libvirt-7.6.0.tar.xz
SOURCES/libvirt-7.8.0.tar.xz

View File

@ -1 +1 @@
d80c78e465ed9af0c745141e323fa312656e8ff6 SOURCES/libvirt-7.6.0.tar.xz
21ae34a57183c3918d65d2a1fbd5f2bea002fb24 SOURCES/libvirt-7.8.0.tar.xz

View File

@ -1,5 +1,5 @@
From 7d799ffd509381fc863983cbf4869fc329e7a784 Mon Sep 17 00:00:00 2001
Message-Id: <7d799ffd509381fc863983cbf4869fc329e7a784@dist-git>
From 8f2d2f7f26df5e62807f4fd53a1774086ea2c564 Mon Sep 17 00:00:00 2001
Message-Id: <8f2d2f7f26df5e62807f4fd53a1774086ea2c564@dist-git>
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
Date: Mon, 22 Feb 2016 12:51:51 +0100
Subject: [PATCH] RHEL: Add rhel machine types to qemuDomainMachineNeedsFDC
@ -13,24 +13,31 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1227880
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/qemu/qemu_domain.c | 4 ++++
1 file changed, 4 insertions(+)
src/qemu/qemu_domain.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 7e2efc8168..7b4447dc81 100644
index 584bf5003f..604d0521b0 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -8834,6 +8834,10 @@ qemuDomainMachineNeedsFDC(const char *machine,
@@ -8666,10 +8666,16 @@ static bool
qemuDomainMachineNeedsFDC(const char *machine,
const virArch arch)
{
+ const char *p = STRSKIP(machine, "pc-q35-");
+
if (!ARCH_IS_X86(arch))
return false;
}
+ if (STRPREFIX(p, "rhel7.0.0") ||
+ STRPREFIX(p, "rhel7.1.0"))
- if (!STRPREFIX(machine, "pc-q35-"))
+ if (!p)
+ return false;
+
+ if (STRPREFIX(p, "rhel7.0.0") ||
+ STRPREFIX(p, "rhel7.1.0"))
return false;
return true;
}
--
2.32.0
2.33.0

View File

@ -1,5 +1,5 @@
From a732080685a349e4ab2709e33ac3e99aa9771161 Mon Sep 17 00:00:00 2001
Message-Id: <a732080685a349e4ab2709e33ac3e99aa9771161@dist-git>
From 924bdbd5323c48dfc7b8c5e36346c0d7ca083885 Mon Sep 17 00:00:00 2001
Message-Id: <924bdbd5323c48dfc7b8c5e36346c0d7ca083885@dist-git>
From: Peter Krempa <pkrempa@redhat.com>
Date: Wed, 28 Jul 2021 17:37:21 +0200
Subject: [PATCH] RHEL: Enable usage of x-blockdev-reopen
@ -29,20 +29,20 @@ Reviewed-by: Ján Tomko <jtomko@redhat.com>
---
src/qemu/qemu_block.c | 24 +++++++++++++++---------
src/qemu/qemu_block.h | 3 ++-
src/qemu/qemu_capabilities.c | 11 +++++++++++
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_capabilities.c | 13 +++++++++++++
src/qemu/qemu_capabilities.h | 3 +++
src/qemu/qemu_monitor.c | 5 +++--
src/qemu/qemu_monitor.h | 3 ++-
src/qemu/qemu_monitor_json.c | 12 +++++++++---
src/qemu/qemu_monitor_json.h | 3 ++-
tests/qemumonitorjsontest.c | 2 +-
9 files changed, 46 insertions(+), 18 deletions(-)
9 files changed, 50 insertions(+), 18 deletions(-)
diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c
index 4691dff4f7..1f731fff3d 100644
index 393d3f44d7..d4a5315ec6 100644
--- a/src/qemu/qemu_block.c
+++ b/src/qemu/qemu_block.c
@@ -3289,7 +3289,8 @@ qemuBlockBitmapsHandleCommitFinish(virStorageSource *topsrc,
@@ -3281,7 +3281,8 @@ qemuBlockBitmapsHandleCommitFinish(virStorageSource *topsrc,
int
qemuBlockReopenFormatMon(qemuMonitor *mon,
@ -52,7 +52,7 @@ index 4691dff4f7..1f731fff3d 100644
{
g_autoptr(virJSONValue) reopenprops = NULL;
g_autoptr(virJSONValue) srcprops = NULL;
@@ -3298,15 +3299,19 @@ qemuBlockReopenFormatMon(qemuMonitor *mon,
@@ -3290,15 +3291,19 @@ qemuBlockReopenFormatMon(qemuMonitor *mon,
if (!(srcprops = qemuBlockStorageSourceGetBlockdevProps(src, src->backingStore)))
return -1;
@ -79,7 +79,7 @@ index 4691dff4f7..1f731fff3d 100644
return -1;
return 0;
@@ -3330,6 +3335,7 @@ qemuBlockReopenFormat(virDomainObj *vm,
@@ -3322,6 +3327,7 @@ qemuBlockReopenFormat(virDomainObj *vm,
{
qemuDomainObjPrivate *priv = vm->privateData;
virQEMUDriver *driver = priv->driver;
@ -87,7 +87,7 @@ index 4691dff4f7..1f731fff3d 100644
int rc;
/* If we are lacking the object here, qemu might have opened an image with
@@ -3343,7 +3349,7 @@ qemuBlockReopenFormat(virDomainObj *vm,
@@ -3335,7 +3341,7 @@ qemuBlockReopenFormat(virDomainObj *vm,
if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
return -1;
@ -111,26 +111,28 @@ index 54601a48a9..88fc9974c4 100644
int
qemuBlockReopenReadWrite(virDomainObj *vm,
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 9558938866..6734ed213d 100644
index a1be0cb74e..bd8da54d03 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -637,6 +637,7 @@ VIR_ENUM_IMPL(virQEMUCaps,
"confidential-guest-support",
"query-display-options",
"s390-pv-guest",
+ "blockdev-reopen.__com.redhat_rhel-av-8_2_0-api",
@@ -639,6 +639,9 @@ VIR_ENUM_IMPL(virQEMUCaps,
"s390-pv-guest", /* QEMU_CAPS_S390_PV_GUEST */
"set-action", /* QEMU_CAPS_SET_ACTION */
"virtio-blk.queue-size", /* QEMU_CAPS_VIRTIO_BLK_QUEUE_SIZE */
+
+ /* 410 */
+ "blockdev-reopen.__com.redhat_rhel-av-8_2_0-api", /* QEMU_CAPS_BLOCKDEV_REOPEN_COM_REDHAT_AV_8_2_0_API */
);
@@ -1551,6 +1552,7 @@ static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsVhostUserFS[] =
@@ -1550,6 +1553,7 @@ static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsVhostUserFS[] =
/* see documentation for virQEMUQAPISchemaPathGet for the query format */
static struct virQEMUCapsStringFlags virQEMUCapsQMPSchemaQueries[] = {
{ "block-commit/arg-type/*top", QEMU_CAPS_ACTIVE_COMMIT },
+ { "x-blockdev-reopen/$__com.redhat_rhel-av-8_2_0-api", QEMU_CAPS_BLOCKDEV_REOPEN_COM_REDHAT_AV_8_2_0_API },
{ "blockdev-add/arg-type/options/+gluster/debug-level", QEMU_CAPS_GLUSTER_DEBUG_LEVEL},
{ "blockdev-add/arg-type/+gluster/debug", QEMU_CAPS_GLUSTER_DEBUG_LEVEL},
{ "blockdev-add/arg-type/+vxhs", QEMU_CAPS_VXHS},
@@ -5204,6 +5206,15 @@ virQEMUCapsInitProcessCaps(virQEMUCaps *qemuCaps)
@@ -5144,6 +5148,15 @@ virQEMUCapsInitProcessCaps(virQEMUCaps *qemuCaps)
qemuCaps->arch == VIR_ARCH_MIPS)
virQEMUCapsSet(qemuCaps, QEMU_CAPS_SCSI_NCR53C90);
@ -147,22 +149,24 @@ index 9558938866..6734ed213d 100644
}
diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index 2b1bb57a49..def0dd2030 100644
index b0fa1eec35..d2da311010 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -617,6 +617,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
QEMU_CAPS_MACHINE_CONFIDENTAL_GUEST_SUPPORT, /* -machine confidential-guest-support */
QEMU_CAPS_QUERY_DISPLAY_OPTIONS, /* 'query-display-options' qmp command present */
QEMU_CAPS_S390_PV_GUEST, /* -object s390-pv-guest,... */
+ QEMU_CAPS_BLOCKDEV_REOPEN_COM_REDHAT_AV_8_2_0_API, /* downstream support for blockdev reopen in rhel-av-8.2.0 */
@@ -620,6 +620,9 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
QEMU_CAPS_SET_ACTION, /* 'set-action' QMP command */
QEMU_CAPS_VIRTIO_BLK_QUEUE_SIZE, /* virtio-blk-*.queue-size */
+ /* 410 */
+ QEMU_CAPS_BLOCKDEV_REOPEN_COM_REDHAT_AV_8_2_0_API, /* downstream support for blockdev reopen in rhel-av-8.2.0 */
+
QEMU_CAPS_LAST /* this must always be the last item */
} virQEMUCapsFlags;
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index 6e2d8010c5..7ebaa7b099 100644
index 42846349c4..065ed59336 100644
--- a/src/qemu/qemu_monitor.c
+++ b/src/qemu/qemu_monitor.c
@@ -4339,14 +4339,15 @@ qemuMonitorBlockdevAdd(qemuMonitor *mon,
@@ -4331,14 +4331,15 @@ qemuMonitorBlockdevAdd(qemuMonitor *mon,
int
qemuMonitorBlockdevReopen(qemuMonitor *mon,
@ -181,10 +185,10 @@ index 6e2d8010c5..7ebaa7b099 100644
diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
index 1491c1297c..5a93447e23 100644
index 2f08357c0c..d1eb8f1b26 100644
--- a/src/qemu/qemu_monitor.h
+++ b/src/qemu/qemu_monitor.h
@@ -1366,7 +1366,8 @@ int qemuMonitorBlockdevAdd(qemuMonitor *mon,
@@ -1405,7 +1405,8 @@ int qemuMonitorBlockdevAdd(qemuMonitor *mon,
virJSONValue **props);
int qemuMonitorBlockdevReopen(qemuMonitor *mon,
@ -195,10 +199,10 @@ index 1491c1297c..5a93447e23 100644
int qemuMonitorBlockdevDel(qemuMonitor *mon,
const char *nodename);
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index ca2c3bb6cf..8ecd5f3bbd 100644
index 37e9c05d27..6b8c13527b 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -8687,13 +8687,19 @@ qemuMonitorJSONBlockdevAdd(qemuMonitor *mon,
@@ -8620,13 +8620,19 @@ qemuMonitorJSONBlockdevAdd(qemuMonitor *mon,
int
qemuMonitorJSONBlockdevReopen(qemuMonitor *mon,
@ -222,10 +226,10 @@ index ca2c3bb6cf..8ecd5f3bbd 100644
if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0)
return -1;
diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h
index 01a3ba25f1..90792c9939 100644
index c8cf734a1c..1c93645fda 100644
--- a/src/qemu/qemu_monitor_json.h
+++ b/src/qemu/qemu_monitor_json.h
@@ -601,7 +601,8 @@ int qemuMonitorJSONBlockdevAdd(qemuMonitor *mon,
@@ -598,7 +598,8 @@ int qemuMonitorJSONBlockdevAdd(qemuMonitor *mon,
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
int qemuMonitorJSONBlockdevReopen(qemuMonitor *mon,
@ -236,10 +240,10 @@ index 01a3ba25f1..90792c9939 100644
int qemuMonitorJSONBlockdevDel(qemuMonitor *mon,
diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c
index 2122d9d999..c20287afee 100644
index 1e4c2fd14e..72bcbb8c5e 100644
--- a/tests/qemumonitorjsontest.c
+++ b/tests/qemumonitorjsontest.c
@@ -2820,7 +2820,7 @@ testQemuMonitorJSONBlockdevReopen(const void *opaque)
@@ -2794,7 +2794,7 @@ testQemuMonitorJSONBlockdevReopen(const void *opaque)
if (qemuMonitorTestAddItem(test, "blockdev-reopen", "{\"return\":{}}") < 0)
return -1;
@ -249,5 +253,5 @@ index 2122d9d999..c20287afee 100644
return 0;
--
2.32.0
2.33.0

View File

@ -1,5 +1,5 @@
From ce1f2d4397f1c3fe3bf87e8b49736bf3c5000de8 Mon Sep 17 00:00:00 2001
Message-Id: <ce1f2d4397f1c3fe3bf87e8b49736bf3c5000de8@dist-git>
From 540233361294459596ec2e4ccef089662945ac5c Mon Sep 17 00:00:00 2001
Message-Id: <540233361294459596ec2e4ccef089662945ac5c@dist-git>
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
Date: Mon, 27 Aug 2018 13:09:38 +0200
Subject: [PATCH] RHEL: Fix virConnectGetMaxVcpus output
@ -26,7 +26,7 @@ Reviewed-by: Andrea Bolognani <abologna@redhat.com>
1 file changed, 5 insertions(+)
diff --git a/src/util/virhostcpu.c b/src/util/virhostcpu.c
index 7aa92ad11d..337f03b41b 100644
index 5dd2baf2df..6811c498f9 100644
--- a/src/util/virhostcpu.c
+++ b/src/util/virhostcpu.c
@@ -1192,6 +1192,11 @@ virHostCPUGetKVMMaxVCPUs(void)
@ -42,5 +42,5 @@ index 7aa92ad11d..337f03b41b 100644
/* at first try KVM_CAP_MAX_VCPUS to determine the maximum count */
if ((ret = ioctl(fd, KVM_CHECK_EXTENSION, KVM_CAP_MAX_VCPUS)) > 0)
--
2.32.0
2.33.0

View File

@ -1,5 +1,5 @@
From 0c42b50b3f2e3cb84d704268fcb267a5b0fabdec Mon Sep 17 00:00:00 2001
Message-Id: <0c42b50b3f2e3cb84d704268fcb267a5b0fabdec@dist-git>
From fa6027e1ad6ead4c4b6a13f1f5359b63fec2e23c Mon Sep 17 00:00:00 2001
Message-Id: <fa6027e1ad6ead4c4b6a13f1f5359b63fec2e23c@dist-git>
From: Jiri Denemark <jdenemar@redhat.com>
Date: Fri, 27 Mar 2015 12:48:40 +0100
Subject: [PATCH] RHEL: Hack around changed Broadwell/Haswell CPUs
@ -30,10 +30,10 @@ Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
9 files changed, 29 insertions(+), 8 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 156af4caee..b37d693c72 100644
index 48df8818a6..a1072f74cf 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -6343,6 +6343,8 @@ qemuBuildCpuModelArgStr(virQEMUDriver *driver,
@@ -6242,6 +6242,8 @@ qemuBuildCpuModelArgStr(virQEMUDriver *driver,
{
size_t i;
virCPUDef *cpu = def->cpu;
@ -42,7 +42,7 @@ index 156af4caee..b37d693c72 100644
switch ((virCPUMode) cpu->mode) {
case VIR_CPU_MODE_HOST_PASSTHROUGH:
@@ -6407,6 +6409,11 @@ qemuBuildCpuModelArgStr(virQEMUDriver *driver,
@@ -6306,6 +6308,11 @@ qemuBuildCpuModelArgStr(virQEMUDriver *driver,
virBufferAsprintf(buf, ",vendor=%s", cpu->vendor_id);
for (i = 0; i < cpu->nfeatures; i++) {
@ -54,7 +54,7 @@ index 156af4caee..b37d693c72 100644
switch ((virCPUFeaturePolicy) cpu->features[i].policy) {
case VIR_CPU_FEATURE_FORCE:
case VIR_CPU_FEATURE_REQUIRE:
@@ -6424,6 +6431,20 @@ qemuBuildCpuModelArgStr(virQEMUDriver *driver,
@@ -6323,6 +6330,20 @@ qemuBuildCpuModelArgStr(virQEMUDriver *driver,
}
}
@ -76,12 +76,12 @@ index 156af4caee..b37d693c72 100644
}
diff --git a/tests/qemuxml2argvdata/cpu-Haswell.args b/tests/qemuxml2argvdata/cpu-Haswell.args
index 8bbd6277fd..55b66b343d 100644
index 6441a4c1eb..110017cf0e 100644
--- a/tests/qemuxml2argvdata/cpu-Haswell.args
+++ b/tests/qemuxml2argvdata/cpu-Haswell.args
@@ -11,7 +11,7 @@ QEMU_AUDIO_DRV=none \
-name QEMUGuest1 \
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
-S \
-object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
-machine pc,accel=kvm,usb=off,dump-guest-core=off \
--cpu Haswell \
+-cpu Haswell,+rtm,+hle \
@ -89,12 +89,12 @@ index 8bbd6277fd..55b66b343d 100644
-realtime mlock=off \
-smp 6,sockets=6,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/cpu-host-model-cmt.args b/tests/qemuxml2argvdata/cpu-host-model-cmt.args
index e21a889bee..5092e9f43a 100644
index ffa9236a47..c859978e02 100644
--- a/tests/qemuxml2argvdata/cpu-host-model-cmt.args
+++ b/tests/qemuxml2argvdata/cpu-host-model-cmt.args
@@ -11,7 +11,7 @@ QEMU_AUDIO_DRV=none \
-name QEMUGuest1 \
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
-S \
-object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
-machine pc,accel=tcg,usb=off,dump-guest-core=off \
--cpu Haswell,+vme,+ds,+acpi,+ss,+ht,+tm,+pbe,+dtes64,+monitor,+ds_cpl,+vmx,+smx,+est,+tm2,+xtpr,+pdcm,+f16c,+rdrand,+pdpe1gb,+abm,+lahf_lm \
+-cpu Haswell,+vme,+ds,+acpi,+ss,+ht,+tm,+pbe,+dtes64,+monitor,+ds_cpl,+vmx,+smx,+est,+tm2,+xtpr,+pdcm,+f16c,+rdrand,+pdpe1gb,+abm,+lahf_lm,+rtm,+hle \
@ -128,25 +128,25 @@ index bb6b5c9986..f4a9fde2bf 100644
-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
-overcommit mem-lock=off \
diff --git a/tests/qemuxml2argvdata/cpu-tsc-frequency.args b/tests/qemuxml2argvdata/cpu-tsc-frequency.args
index 0f6f79653e..207ac0a0bb 100644
index 3a7d69d6b7..3b30aa92f8 100644
--- a/tests/qemuxml2argvdata/cpu-tsc-frequency.args
+++ b/tests/qemuxml2argvdata/cpu-tsc-frequency.args
@@ -11,7 +11,7 @@ QEMU_AUDIO_DRV=none \
-name QEMUGuest1 \
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
-S \
-object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
-machine pc,accel=kvm,usb=off,dump-guest-core=off \
--cpu Haswell,+vme,+ds,+acpi,+ss,+ht,+tm,+pbe,+dtes64,+monitor,+ds_cpl,+vmx,+smx,+est,+tm2,+xtpr,+pdcm,+f16c,+rdrand,+pdpe1gb,+abm,+lahf_lm,+invtsc,tsc-frequency=3504000000 \
+-cpu Haswell,+vme,+ds,+acpi,+ss,+ht,+tm,+pbe,+dtes64,+monitor,+ds_cpl,+vmx,+smx,+est,+tm2,+xtpr,+pdcm,+f16c,+rdrand,+pdpe1gb,+abm,+lahf_lm,+invtsc,+rtm,+hle,tsc-frequency=3504000000 \
--cpu Haswell,+vme,+ds,+acpi,+ss,+ht,+tm,+pbe,+dtes64,+monitor,+ds_cpl,+vmx,+smx,+est,+tm2,+xtpr,+pdcm,+f16c,+rdrand,+pdpe1gb,+abm,+lahf_lm,+invtsc,tsc-frequency=4567890000 \
+-cpu Haswell,+vme,+ds,+acpi,+ss,+ht,+tm,+pbe,+dtes64,+monitor,+ds_cpl,+vmx,+smx,+est,+tm2,+xtpr,+pdcm,+f16c,+rdrand,+pdpe1gb,+abm,+lahf_lm,+invtsc,+rtm,+hle,tsc-frequency=4567890000 \
-m 214 \
-realtime mlock=off \
-smp 1,sockets=1,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/q35-acpi-nouefi.args b/tests/qemuxml2argvdata/q35-acpi-nouefi.args
index f3d255e76e..bdb94c6fb5 100644
index 956ee3b6b7..55222293d0 100644
--- a/tests/qemuxml2argvdata/q35-acpi-nouefi.args
+++ b/tests/qemuxml2argvdata/q35-acpi-nouefi.args
@@ -11,7 +11,7 @@ QEMU_AUDIO_DRV=none \
-name guest \
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
-S \
-object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-guest/master-key.aes \
-machine q35,accel=tcg,usb=off,dump-guest-core=off \
--cpu Haswell \
+-cpu Haswell,+rtm,+hle \
@ -154,12 +154,12 @@ index f3d255e76e..bdb94c6fb5 100644
-realtime mlock=off \
-smp 1,sockets=1,cores=1,threads=1 \
diff --git a/tests/qemuxml2argvdata/q35-acpi-uefi.args b/tests/qemuxml2argvdata/q35-acpi-uefi.args
index b51a102e01..3ca8ac98a9 100644
index 272369de22..ea03a2ac33 100644
--- a/tests/qemuxml2argvdata/q35-acpi-uefi.args
+++ b/tests/qemuxml2argvdata/q35-acpi-uefi.args
@@ -11,7 +11,7 @@ QEMU_AUDIO_DRV=none \
-name guest \
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
-S \
-object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-guest/master-key.aes \
-machine q35,accel=tcg,usb=off,dump-guest-core=off \
--cpu Haswell \
+-cpu Haswell,+rtm,+hle \
@ -167,12 +167,12 @@ index b51a102e01..3ca8ac98a9 100644
-drive file=/var/lib/libvirt/qemu/nvram/guest_VARS.fd,if=pflash,format=raw,unit=1 \
-m 1024 \
diff --git a/tests/qemuxml2argvdata/q35-noacpi-nouefi.args b/tests/qemuxml2argvdata/q35-noacpi-nouefi.args
index 0cee789ad1..39f28e8c6d 100644
index c6cffeea89..ce556db8e9 100644
--- a/tests/qemuxml2argvdata/q35-noacpi-nouefi.args
+++ b/tests/qemuxml2argvdata/q35-noacpi-nouefi.args
@@ -11,7 +11,7 @@ QEMU_AUDIO_DRV=none \
-name guest \
@@ -12,7 +12,7 @@ QEMU_AUDIO_DRV=none \
-S \
-object secret,id=masterKey0,format=raw,file=/tmp/lib/domain--1-guest/master-key.aes \
-machine q35,accel=tcg,usb=off,dump-guest-core=off \
--cpu Haswell \
+-cpu Haswell,+rtm,+hle \
@ -180,5 +180,5 @@ index 0cee789ad1..39f28e8c6d 100644
-realtime mlock=off \
-smp 1,sockets=1,cores=1,threads=1 \
--
2.32.0
2.33.0

View File

@ -1,5 +1,5 @@
From e290c6907c1d478724b8d7f178715db6cf4bd278 Mon Sep 17 00:00:00 2001
Message-Id: <e290c6907c1d478724b8d7f178715db6cf4bd278@dist-git>
From 1701b2edd17266113200a87a7bb92bdace556fa6 Mon Sep 17 00:00:00 2001
Message-Id: <1701b2edd17266113200a87a7bb92bdace556fa6@dist-git>
From: John Ferlan <jferlan@redhat.com>
Date: Mon, 17 Dec 2018 20:42:30 -0500
Subject: [PATCH] RHEL: qemu: Add ability to set sgio values for hostdev
@ -77,5 +77,5 @@ index 916a3d36ee..a749fc1bbc 100644
/* Do not do anything if unpriv_sgio is not supported by the kernel and the
* whitelist is enabled. But if requesting unfiltered access, always call
--
2.32.0
2.33.0

View File

@ -1,5 +1,5 @@
From 5a3113135bcbf5170033c9ef11cbbc320ad47d7d Mon Sep 17 00:00:00 2001
Message-Id: <5a3113135bcbf5170033c9ef11cbbc320ad47d7d@dist-git>
From c7881fb84209f897f2bd92e13ba4942ba24a87a6 Mon Sep 17 00:00:00 2001
Message-Id: <c7881fb84209f897f2bd92e13ba4942ba24a87a6@dist-git>
From: John Ferlan <jferlan@redhat.com>
Date: Mon, 17 Dec 2018 20:42:31 -0500
Subject: [PATCH] RHEL: qemu: Add check for unpriv sgio for SCSI generic host
@ -62,5 +62,5 @@ index a749fc1bbc..2beef89cd1 100644
qemuDriverLock(driver);
--
2.32.0
2.33.0

View File

@ -1,5 +1,5 @@
From 5488481a03dc8dfcbb99df263b3206e65fa8f4fa Mon Sep 17 00:00:00 2001
Message-Id: <5488481a03dc8dfcbb99df263b3206e65fa8f4fa@dist-git>
From 42244a9ec8cf97a6384aa2c9be85dc29f99ce5c6 Mon Sep 17 00:00:00 2001
Message-Id: <42244a9ec8cf97a6384aa2c9be85dc29f99ce5c6@dist-git>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Fri, 6 Mar 2020 15:52:21 +0100
Subject: [PATCH] RHEL: virscsi: Check device type before getting it's /dev
@ -24,7 +24,7 @@ Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
create mode 100644 tests/virscsidata/1-0-0-0/type
diff --git a/src/util/virscsi.c b/src/util/virscsi.c
index b1f202eef1..3d68f829e4 100644
index 6a90d9002f..770f727cac 100644
--- a/src/util/virscsi.c
+++ b/src/util/virscsi.c
@@ -47,6 +47,32 @@ struct _virUsedByInfo {
@ -211,5 +211,5 @@ index 0000000000..573541ac97
@@ -0,0 +1 @@
+0
--
2.32.0
2.33.0

View File

@ -1,5 +1,5 @@
From 27dee7b5a4152ceea00662a6f112c994d7f2b818 Mon Sep 17 00:00:00 2001
Message-Id: <27dee7b5a4152ceea00662a6f112c994d7f2b818@dist-git>
From 021beedb6ddc77f8ceadb589ae9d1d7c9aacf363 Mon Sep 17 00:00:00 2001
Message-Id: <021beedb6ddc77f8ceadb589ae9d1d7c9aacf363@dist-git>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Fri, 6 Mar 2020 15:52:23 +0100
Subject: [PATCH] RHEL: virscsi: Introduce and use
@ -30,10 +30,10 @@ Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
6 files changed, 49 insertions(+), 31 deletions(-)
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 43493ea76e..0f701ed1ae 100644
index 6de9d9aef1..1efdb0f881 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -3168,6 +3168,7 @@ virSCSIDeviceGetSgName;
@@ -3187,6 +3187,7 @@ virSCSIDeviceGetSgName;
virSCSIDeviceGetShareable;
virSCSIDeviceGetTarget;
virSCSIDeviceGetUnit;
@ -120,7 +120,7 @@ index 2beef89cd1..90ff7f56f0 100644
return 0;
diff --git a/src/util/virscsi.c b/src/util/virscsi.c
index d6c10c0667..7a8e6b3b23 100644
index 6165196423..b437fdcac0 100644
--- a/src/util/virscsi.c
+++ b/src/util/virscsi.c
@@ -302,6 +302,25 @@ virSCSIDeviceGetDevName(const char *sysfs_prefix,
@ -166,10 +166,10 @@ index 65ad15ed76..5721985939 100644
virSCSIDevice *virSCSIDeviceNew(const char *sysfs_prefix,
const char *adapter,
diff --git a/src/util/virutil.c b/src/util/virutil.c
index 00cd56e2b2..d0fc49c39f 100644
index c9de043c40..a916f30aa9 100644
--- a/src/util/virutil.c
+++ b/src/util/virutil.c
@@ -1382,18 +1382,13 @@ virGetUnprivSGIOSysfsPath(const char *path,
@@ -1377,18 +1377,13 @@ virGetUnprivSGIOSysfsPath(const char *path,
int
virSetDeviceUnprivSGIO(const char *path,
@ -189,7 +189,7 @@ index 00cd56e2b2..d0fc49c39f 100644
virReportError(VIR_ERR_OPERATION_INVALID, "%s",
_("unpriv_sgio is not supported by this kernel"));
goto cleanup;
@@ -1401,38 +1396,32 @@ virSetDeviceUnprivSGIO(const char *path,
@@ -1396,38 +1391,32 @@ virSetDeviceUnprivSGIO(const char *path,
val = g_strdup_printf("%d", unpriv_sgio);
@ -232,7 +232,7 @@ index 00cd56e2b2..d0fc49c39f 100644
goto cleanup;
if ((tmp = strchr(buf, '\n')))
@@ -1440,13 +1429,12 @@ virGetDeviceUnprivSGIO(const char *path,
@@ -1435,13 +1424,12 @@ virGetDeviceUnprivSGIO(const char *path,
if (virStrToLong_i(buf, NULL, 10, unpriv_sgio) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
@ -263,5 +263,5 @@ index 854b494890..da267c6446 100644
char *virGetUnprivSGIOSysfsPath(const char *path,
const char *sysfs_dir);
--
2.32.0
2.33.0

View File

@ -1,5 +1,5 @@
From 172cd449d1c757219cbea6e9d94dbff54f28b833 Mon Sep 17 00:00:00 2001
Message-Id: <172cd449d1c757219cbea6e9d94dbff54f28b833@dist-git>
From 6f3aeca3a5458f59d13138cc03d9c79a85502757 Mon Sep 17 00:00:00 2001
Message-Id: <6f3aeca3a5458f59d13138cc03d9c79a85502757@dist-git>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Fri, 6 Mar 2020 15:52:22 +0100
Subject: [PATCH] RHEL: virscsi: Support TAPEs in virSCSIDeviceGetDevName()
@ -34,7 +34,7 @@ Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
create mode 100644 tests/virscsidata/sg3
diff --git a/src/util/virscsi.c b/src/util/virscsi.c
index 3d68f829e4..d6c10c0667 100644
index 770f727cac..6165196423 100644
--- a/src/util/virscsi.c
+++ b/src/util/virscsi.c
@@ -224,6 +224,31 @@ virSCSIDeviceGetDevNameBlock(const char *prefix,
@ -125,10 +125,10 @@ diff --git a/tests/virscsidata/sg3 b/tests/virscsidata/sg3
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/virscsitest.c b/tests/virscsitest.c
index 0d7c35a261..0647bb4841 100644
index c96699e157..924b77af08 100644
--- a/tests/virscsitest.c
+++ b/tests/virscsitest.c
@@ -33,18 +33,34 @@ VIR_LOG_INIT("tests.scsitest");
@@ -33,17 +33,33 @@ VIR_LOG_INIT("tests.scsitest");
static char *virscsi_prefix;
@ -145,8 +145,7 @@ index 0d7c35a261..0647bb4841 100644
+testGetDevName(const void *opaque)
{
+ const testGetDevNameData *data = opaque;
char *name = NULL;
int ret = -1;
g_autofree char *name = NULL;
if (!(name = virSCSIDeviceGetDevName(virscsi_prefix,
- "scsi_host1", 0, 0, 0)))
@ -161,12 +160,12 @@ index 0d7c35a261..0647bb4841 100644
+ fprintf(stderr,
+ "SCSI dev name mismatch, expected %s got %s",
+ data->expectedName, name);
goto cleanup;
return -1;
+ }
ret = 0;
cleanup:
@@ -213,15 +229,27 @@ mymain(void)
return 0;
}
@@ -200,15 +216,27 @@ mymain(void)
CREATE_SYMLINK("0-0-0-0", "0:0:0:0");
CREATE_SYMLINK("1-0-0-0", "1:0:0:0");
@ -197,5 +196,5 @@ index 0d7c35a261..0647bb4841 100644
ret = -1;
--
2.32.0
2.33.0

View File

@ -1,5 +1,5 @@
From 7da0de5b5de0b43e7da21844cad3c643f9f19997 Mon Sep 17 00:00:00 2001
Message-Id: <7da0de5b5de0b43e7da21844cad3c643f9f19997@dist-git>
From b8e065b82b1497217863e6288ef4b5f486370e9c Mon Sep 17 00:00:00 2001
Message-Id: <b8e065b82b1497217863e6288ef4b5f486370e9c@dist-git>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Fri, 6 Mar 2020 15:52:24 +0100
Subject: [PATCH] RHEL: virutil: Accept non-block devices in virGetDeviceID()
@ -19,10 +19,10 @@ Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
1 file changed, 3 deletions(-)
diff --git a/src/util/virutil.c b/src/util/virutil.c
index d0fc49c39f..0b8d763584 100644
index a916f30aa9..3396b3da9d 100644
--- a/src/util/virutil.c
+++ b/src/util/virutil.c
@@ -1338,9 +1338,6 @@ virGetDeviceID(const char *path, int *maj, int *min)
@@ -1333,9 +1333,6 @@ virGetDeviceID(const char *path, int *maj, int *min)
if (stat(path, &sb) < 0)
return -errno;
@ -33,5 +33,5 @@ index d0fc49c39f..0b8d763584 100644
*maj = major(sb.st_rdev);
if (min)
--
2.32.0
2.33.0

View File

@ -1,41 +0,0 @@
From 1584be12f2ec36b56b014843179b80eb72d99804 Mon Sep 17 00:00:00 2001
Message-Id: <1584be12f2ec36b56b014843179b80eb72d99804@dist-git>
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
Date: Thu, 5 Aug 2021 13:49:47 +0200
Subject: [PATCH] qemu: virtiofs: kill the whole process group
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Send TERM/KILL to virtiofsd and its child processes too
and do not exit until they are all dead.
https://bugzilla.redhat.com/show_bug.cgi?id=1940276
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Tested-by: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
(cherry picked from commit ca43a5198a84e592d9e2e844cdb39b24a0c8732b)
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Message-Id: <1af2b57ee80f752ac84f23893f229e2d09e5d475.1628164129.git.jtomko@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
---
src/qemu/qemu_virtiofs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/qemu/qemu_virtiofs.c b/src/qemu/qemu_virtiofs.c
index edaedf0304..15c05479c8 100644
--- a/src/qemu/qemu_virtiofs.c
+++ b/src/qemu/qemu_virtiofs.c
@@ -281,7 +281,7 @@ qemuVirtioFSStop(virQEMUDriver *driver G_GNUC_UNUSED,
if (!(pidfile = qemuVirtioFSCreatePidFilename(vm, fs->info.alias)))
goto cleanup;
- if (virPidFileForceCleanupPath(pidfile) < 0) {
+ if (virPidFileForceCleanupPathFull(pidfile, true) < 0) {
VIR_WARN("Unable to kill virtiofsd process");
} else {
if (QEMU_DOMAIN_FS_PRIVATE(fs)->vhostuser_fs_sock)
--
2.32.0

View File

@ -1,56 +0,0 @@
From c0a4688a4754715e90a1b127c080917be48ee14a Mon Sep 17 00:00:00 2001
Message-Id: <c0a4688a4754715e90a1b127c080917be48ee14a@dist-git>
From: Kristina Hanicova <khanicov@redhat.com>
Date: Thu, 5 Aug 2021 13:42:15 +0200
Subject: [PATCH] qemu_migration: check for interface type 'hostdev'
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When we try to migrate vm, we check if it contains only devices
that are able to migrate. If a hostdev device is not able to
migrate we raise an error with <hostdev/>, but it can actually be
<interface/>, so we need to check if hostdev device was created
by us from interface and show the right error message.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1942315
Signed-off-by: Kristina Hanicova <khanicov@redhat.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 814a8aaeeb51fa0fd65a030853cc86bc6d29b9d8)
Signed-off-by: Kristina Hanicova <khanicov@redhat.com>
Message-Id: <3b763f29bb5978cdb4f826ac9d4d632c7631e083.1628163625.git.khanicov@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
---
src/qemu/qemu_migration.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index 4d651aeb1a..b441d0226c 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -1272,9 +1272,17 @@ qemuMigrationSrcIsAllowedHostdev(const virDomainDef *def)
}
/* all other PCI hostdevs can't be migrated */
- virReportError(VIR_ERR_OPERATION_UNSUPPORTED,
- _("cannot migrate a domain with <hostdev mode='subsystem' type='%s'>"),
- virDomainHostdevSubsysTypeToString(hostdev->source.subsys.type));
+ if (hostdev->parentnet) {
+ virDomainNetType actualType = virDomainNetGetActualType(hostdev->parentnet);
+
+ virReportError(VIR_ERR_OPERATION_UNSUPPORTED,
+ _("cannot migrate a domain with <interface type='%s'>"),
+ virDomainNetTypeToString(actualType));
+ } else {
+ virReportError(VIR_ERR_OPERATION_UNSUPPORTED,
+ _("cannot migrate a domain with <hostdev mode='subsystem' type='%s'>"),
+ virDomainHostdevSubsysTypeToString(hostdev->source.subsys.type));
+ }
return false;
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_LAST:
--
2.32.0

View File

@ -1,78 +0,0 @@
From 5d90f461a7356560361dab522273ff5aabbfeefe Mon Sep 17 00:00:00 2001
Message-Id: <5d90f461a7356560361dab522273ff5aabbfeefe@dist-git>
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
Date: Thu, 5 Aug 2021 13:49:44 +0200
Subject: [PATCH] util: Introduce virProcessGroupKill
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit fc180c741f27fb24419a69f53ef682fade699b52)
Signed-off-by: Ján Tomko <jtomko@redhat.com>
https://bugzilla.redhat.com/show_bug.cgi?id=1940276
Message-Id: <ff031bb30c28c42566086a0fce4439f80a0bb645.1628164129.git.jtomko@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
---
src/libvirt_private.syms | 1 +
src/util/virprocess.c | 17 +++++++++++++++++
src/util/virprocess.h | 1 +
3 files changed, 19 insertions(+)
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 0f701ed1ae..b5e86019a5 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -3069,6 +3069,7 @@ virProcessGetMaxMemLock;
virProcessGetNamespaces;
virProcessGetPids;
virProcessGetStartTime;
+virProcessGroupKill;
virProcessKill;
virProcessKillPainfully;
virProcessKillPainfullyDelay;
diff --git a/src/util/virprocess.c b/src/util/virprocess.c
index 67dd599b3e..5f01dd1f67 100644
--- a/src/util/virprocess.c
+++ b/src/util/virprocess.c
@@ -361,6 +361,23 @@ int virProcessKill(pid_t pid, int sig)
}
+/* send signal to a process group */
+int virProcessGroupKill(pid_t pid, int sig G_GNUC_UNUSED)
+{
+ if (pid <= 1) {
+ errno = ESRCH;
+ return -1;
+ }
+
+#ifdef WIN32
+ errno = ENOSYS;
+ return -1;
+#else
+ return killpg(pid, sig);
+#endif
+}
+
+
/*
* Try to kill the process and verify it has exited
*
diff --git a/src/util/virprocess.h b/src/util/virprocess.h
index d16e8b23bb..0359d7fd9f 100644
--- a/src/util/virprocess.h
+++ b/src/util/virprocess.h
@@ -52,6 +52,7 @@ virProcessWait(pid_t pid, int *exitstatus, bool raw)
G_GNUC_WARN_UNUSED_RESULT;
int virProcessKill(pid_t pid, int sig);
+int virProcessGroupKill(pid_t pid, int sig);
int virProcessKillPainfully(pid_t pid, bool force);
int virProcessKillPainfullyDelay(pid_t pid,
--
2.32.0

View File

@ -1,78 +0,0 @@
From 463d3a6b9b960410d4a0304209f4e660d7f1faf2 Mon Sep 17 00:00:00 2001
Message-Id: <463d3a6b9b960410d4a0304209f4e660d7f1faf2@dist-git>
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
Date: Thu, 5 Aug 2021 13:49:45 +0200
Subject: [PATCH] util: introduce virProcessGroupGet
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit 4b39c2aa2e840c9f0c51cf5a7a0d93de51ba8439)
Signed-off-by: Ján Tomko <jtomko@redhat.com>
https://bugzilla.redhat.com/show_bug.cgi?id=1940276
Message-Id: <365bb0eb78d11505a2b0d6be798462e667074404.1628164129.git.jtomko@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
---
src/libvirt_private.syms | 1 +
src/util/virprocess.c | 17 +++++++++++++++++
src/util/virprocess.h | 1 +
3 files changed, 19 insertions(+)
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index b5e86019a5..8b892cf255 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -3069,6 +3069,7 @@ virProcessGetMaxMemLock;
virProcessGetNamespaces;
virProcessGetPids;
virProcessGetStartTime;
+virProcessGroupGet;
virProcessGroupKill;
virProcessKill;
virProcessKillPainfully;
diff --git a/src/util/virprocess.c b/src/util/virprocess.c
index 5f01dd1f67..1bc840120a 100644
--- a/src/util/virprocess.c
+++ b/src/util/virprocess.c
@@ -378,6 +378,23 @@ int virProcessGroupKill(pid_t pid, int sig G_GNUC_UNUSED)
}
+/* get process group from a pid */
+pid_t virProcessGroupGet(pid_t pid)
+{
+ if (pid <= 1) {
+ errno = ESRCH;
+ return -1;
+ }
+
+#ifdef WIN32
+ errno = ENOSYS;
+ return -1;
+#else
+ return getpgid(pid);
+#endif
+}
+
+
/*
* Try to kill the process and verify it has exited
*
diff --git a/src/util/virprocess.h b/src/util/virprocess.h
index 0359d7fd9f..9d7c0f479a 100644
--- a/src/util/virprocess.h
+++ b/src/util/virprocess.h
@@ -53,6 +53,7 @@ virProcessWait(pid_t pid, int *exitstatus, bool raw)
int virProcessKill(pid_t pid, int sig);
int virProcessGroupKill(pid_t pid, int sig);
+pid_t virProcessGroupGet(pid_t pid);
int virProcessKillPainfully(pid_t pid, bool force);
int virProcessKillPainfullyDelay(pid_t pid,
--
2.32.0

View File

@ -1,179 +0,0 @@
From aef9198f67350910494edb38b64b1c5e71a32e4e Mon Sep 17 00:00:00 2001
Message-Id: <aef9198f67350910494edb38b64b1c5e71a32e4e@dist-git>
From: =?UTF-8?q?J=C3=A1n=20Tomko?= <jtomko@redhat.com>
Date: Thu, 5 Aug 2021 13:49:46 +0200
Subject: [PATCH] util: virPidFileForceCleanupPath: add group argument
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Add a version of virPidFileForceCleanupPath that takes
a 'group' bool argument and propagate it all the way
down to virProcessKillPainfullyDelay.
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
(cherry picked from commit ff7b8043b68ff8e03008a9328dccb0b310d8f7a2)
Signed-off-by: Ján Tomko <jtomko@redhat.com>
https://bugzilla.redhat.com/show_bug.cgi?id=1940276
Message-Id: <ef5e4377704c1f64553b28971335d331e4d84e84.1628164129.git.jtomko@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
---
src/libvirt_private.syms | 1 +
src/qemu/qemu_process.c | 3 ++-
src/util/virpidfile.c | 15 +++++++++++++--
src/util/virpidfile.h | 2 ++
src/util/virprocess.c | 17 ++++++++++++-----
src/util/virprocess.h | 3 ++-
6 files changed, 32 insertions(+), 9 deletions(-)
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 8b892cf255..c80e690da4 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -3037,6 +3037,7 @@ virPidFileConstructPath;
virPidFileDelete;
virPidFileDeletePath;
virPidFileForceCleanupPath;
+virPidFileForceCleanupPathFull;
virPidFileRead;
virPidFileReadIfAlive;
virPidFileReadPath;
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 521fda57da..6ef8ebd83e 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -7700,7 +7700,8 @@ qemuProcessKill(virDomainObj *vm, unsigned int flags)
* to be safe against stalls by the kernel freeing up the resources */
return virProcessKillPainfullyDelay(vm->pid,
!!(flags & VIR_QEMU_PROCESS_KILL_FORCE),
- vm->def->nhostdevs * 2);
+ vm->def->nhostdevs * 2,
+ false);
}
diff --git a/src/util/virpidfile.c b/src/util/virpidfile.c
index c6389c1869..7069f8343d 100644
--- a/src/util/virpidfile.c
+++ b/src/util/virpidfile.c
@@ -514,7 +514,7 @@ virPidFileConstructPath(bool privileged,
* Returns 0 if the pidfile was successfully cleaned up, -1 otherwise.
*/
int
-virPidFileForceCleanupPath(const char *path)
+virPidFileForceCleanupPathFull(const char *path, bool group)
{
pid_t pid = 0;
int fd = -1;
@@ -529,10 +529,15 @@ virPidFileForceCleanupPath(const char *path)
if (fd < 0) {
virResetLastError();
+ if (pid > 1 && group)
+ pid = virProcessGroupGet(pid);
+
/* Only kill the process if the pid is valid one. 0 means
* there is somebody else doing the same pidfile cleanup
* machinery. */
- if (pid)
+ if (group)
+ virProcessKillPainfullyDelay(pid, true, 0, true);
+ else if (pid)
virProcessKillPainfully(pid, true);
if (virPidFileDeletePath(path) < 0)
@@ -544,3 +549,9 @@ virPidFileForceCleanupPath(const char *path)
return 0;
}
+
+int
+virPidFileForceCleanupPath(const char *path)
+{
+ return virPidFileForceCleanupPathFull(path, false);
+}
diff --git a/src/util/virpidfile.h b/src/util/virpidfile.h
index 370a59892e..fd8013c41e 100644
--- a/src/util/virpidfile.h
+++ b/src/util/virpidfile.h
@@ -73,4 +73,6 @@ int virPidFileConstructPath(bool privileged,
const char *progname,
char **pidfile);
+int virPidFileForceCleanupPathFull(const char *path,
+ bool group) ATTRIBUTE_NONNULL(1);
int virPidFileForceCleanupPath(const char *path) ATTRIBUTE_NONNULL(1);
diff --git a/src/util/virprocess.c b/src/util/virprocess.c
index 1bc840120a..0b57522936 100644
--- a/src/util/virprocess.c
+++ b/src/util/virprocess.c
@@ -406,15 +406,15 @@ pid_t virProcessGroupGet(pid_t pid)
* wait longer than the default.
*/
int
-virProcessKillPainfullyDelay(pid_t pid, bool force, unsigned int extradelay)
+virProcessKillPainfullyDelay(pid_t pid, bool force, unsigned int extradelay, bool group)
{
size_t i;
/* This is in 1/5th seconds since polling is on a 0.2s interval */
unsigned int polldelay = (force ? 200 : 75) + (extradelay*5);
const char *signame = "TERM";
- VIR_DEBUG("vpid=%lld force=%d extradelay=%u",
- (long long)pid, force, extradelay);
+ VIR_DEBUG("vpid=%lld force=%d extradelay=%u group=%d",
+ (long long)pid, force, extradelay, group);
/* This loop sends SIGTERM, then waits a few iterations (10 seconds)
* to see if it dies. If the process still hasn't exited, and
@@ -429,6 +429,8 @@ virProcessKillPainfullyDelay(pid_t pid, bool force, unsigned int extradelay)
*/
for (i = 0; i < polldelay; i++) {
int signum;
+ int rc;
+
if (i == 0) {
signum = SIGTERM; /* kindly suggest it should exit */
} else if (i == 50 && force) {
@@ -447,7 +449,12 @@ virProcessKillPainfullyDelay(pid_t pid, bool force, unsigned int extradelay)
signum = 0; /* Just check for existence */
}
- if (virProcessKill(pid, signum) < 0) {
+ if (group)
+ rc = virProcessGroupKill(pid, signum);
+ else
+ rc = virProcessKill(pid, signum);
+
+ if (rc < 0) {
if (errno != ESRCH) {
virReportSystemError(errno,
_("Failed to terminate process %lld with SIG%s"),
@@ -470,7 +477,7 @@ virProcessKillPainfullyDelay(pid_t pid, bool force, unsigned int extradelay)
int virProcessKillPainfully(pid_t pid, bool force)
{
- return virProcessKillPainfullyDelay(pid, force, 0);
+ return virProcessKillPainfullyDelay(pid, force, 0, false);
}
#if WITH_SCHED_GETAFFINITY
diff --git a/src/util/virprocess.h b/src/util/virprocess.h
index 9d7c0f479a..9910331a0c 100644
--- a/src/util/virprocess.h
+++ b/src/util/virprocess.h
@@ -58,7 +58,8 @@ pid_t virProcessGroupGet(pid_t pid);
int virProcessKillPainfully(pid_t pid, bool force);
int virProcessKillPainfullyDelay(pid_t pid,
bool force,
- unsigned int extradelay);
+ unsigned int extradelay,
+ bool group);
int virProcessSetAffinity(pid_t pid, virBitmap *map, bool quiet);
--
2.32.0

View File

@ -1,97 +0,0 @@
From fa8ad24ae3ff0e43c22b5045a6b99bbddf750121 Mon Sep 17 00:00:00 2001
Message-Id: <fa8ad24ae3ff0e43c22b5045a6b99bbddf750121@dist-git>
From: Michal Privoznik <mprivozn@redhat.com>
Date: Tue, 3 Aug 2021 16:04:36 +0200
Subject: [PATCH] vmx: Parse vm.genid
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The VMware metadata file contains genid but we are not parsing
and thus reporting it in domain XML. However, it's not as
straightforward as one might think. The UUID reported by VMware
is not in its usual string form, but split into two signed long
longs. That means, we have to do a bit of trickery when parsing.
But looking around it's the same magic that libguestfs does:
https://github.com/libguestfs/virt-v2v/blob/master/v2v/input_vmx.ml#L421
It's also explained by Rich on qemu-devel:
https://lists.nongnu.org/archive/html/qemu-devel/2018-07/msg02019.html
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1598348
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Richard W.M. Jones <rjones@redhat.com>
(cherry picked from commit 7d661d6e20fe82e5472d5ab6dcd97ed76291f256)
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Message-Id: <5f6ef3e615301e5d318234949f707bedf9112f85.1627998922.git.mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
---
src/vmx/vmx.c | 30 +++++++++++++++++++
.../vmx2xml-esx-in-the-wild-10.xml | 1 +
2 files changed, 31 insertions(+)
diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c
index 1cd5a82227..04eabff18a 100644
--- a/src/vmx/vmx.c
+++ b/src/vmx/vmx.c
@@ -1337,6 +1337,32 @@ virVMXConfigScanResultsCollector(const char* name,
}
+static int
+virVMXParseGenID(virConf *conf,
+ virDomainDef *def)
+{
+ long long vmid[2] = { 0 };
+ g_autofree char *uuidstr = NULL;
+
+ if (virVMXGetConfigLong(conf, "vm.genid", &vmid[0], 0, true) < 0 ||
+ virVMXGetConfigLong(conf, "vm.genidX", &vmid[1], 0, true) < 0)
+ return -1;
+
+ if (vmid[0] == 0 && vmid[1] == 0)
+ return 0;
+
+ uuidstr = g_strdup_printf("%.16llx%.16llx", vmid[0], vmid[1]);
+ if (virUUIDParse(uuidstr, def->genid) < 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("Could not parse UUID from string '%s'"), uuidstr);
+ return -1;
+ }
+ def->genidRequested = true;
+
+ return 0;
+}
+
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* VMX -> Domain XML
@@ -1466,6 +1492,10 @@ virVMXParseConfig(virVMXContext *ctx,
}
}
+ /* vmx:vm.genid + vm.genidX -> def:genid */
+ if (virVMXParseGenID(conf, def) < 0)
+ goto cleanup;
+
/* vmx:annotation -> def:description */
if (virVMXGetConfigString(conf, "annotation", &def->description,
true) < 0) {
diff --git a/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-10.xml b/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-10.xml
index b8c522af1f..47ed637920 100644
--- a/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-10.xml
+++ b/tests/vmx2xmldata/vmx2xml-esx-in-the-wild-10.xml
@@ -1,6 +1,7 @@
<domain type='vmware'>
<name>w2019biosvmware</name>
<uuid>421a6177-5aa9-abb7-5924-fc376c18a1b4</uuid>
+ <genid>13c67c91-9f47-526f-b0d6-e4dd2e4bb4f9</genid>
<memory unit='KiB'>4194304</memory>
<currentMemory unit='KiB'>4194304</currentMemory>
<vcpu placement='static'>2</vcpu>
--
2.32.0

View File

@ -49,6 +49,7 @@ tests/nodedevxml2xmlout/usb_device_1d6b_1_0000_00_1d_0.xml ../nodedevschemadata/
tests/nodedevxml2xmlout/usb_device_1d6b_1_0000_00_1d_0_if0.xml ../nodedevschemadata/usb_device_1d6b_1_0000_00_1d_0_if0.xml
tests/qemublocktestdata/imagecreate/qcow2-backing-luks.xml qcow2.xml
tests/qemublocktestdata/imagecreate/qcow2-backing-qcow2-slice.xml qcow2.xml
tests/qemublocktestdata/imagecreate/qcow2-backing-qcow2luks.xml qcow2.xml
tests/qemublocktestdata/imagecreate/qcow2-backing-raw-nbd.xml qcow2.xml
tests/qemublocktestdata/imagecreate/qcow2-backing-raw-slice.xml qcow2.xml
tests/qemublocktestdata/imagecreate/qcow2-backing-raw.xml qcow2.xml
@ -154,6 +155,7 @@ tests/qemuxml2xmloutdata/clock-realtime.xml ../qemuxml2argvdata/clock-realtime.x
tests/qemuxml2xmloutdata/clock-timer-armvtimer.aarch64-latest.xml ../qemuxml2argvdata/clock-timer-armvtimer.xml
tests/qemuxml2xmloutdata/disk-detect-zeroes.x86_64-latest.xml ../qemuxml2argvdata/disk-detect-zeroes.xml
tests/qemuxml2xmloutdata/disk-nvme.xml ../qemuxml2argvdata/disk-nvme.xml
tests/qemuxml2xmloutdata/disk-virtio-queues.x86_64-latest.xml ../qemuxml2argvdata/disk-virtio-queues.xml
tests/qemuxml2xmloutdata/disk-virtio-queues.xml ../qemuxml2argvdata/disk-virtio-queues.xml
tests/qemuxml2xmloutdata/disk-virtio-scsi-reservations.xml ../qemuxml2argvdata/disk-virtio-scsi-reservations.xml
tests/qemuxml2xmloutdata/downscript.xml ../qemuxml2argvdata/downscript.xml
@ -1096,3 +1098,12 @@ tests/virhostcpudata/linux-with-die/node/node0/cpu6 ../../cpu/cpu6
tests/virhostcpudata/linux-with-die/node/node0/cpu7 ../../cpu/cpu7
tests/virhostcpudata/linux-with-die/node/node0/cpu8 ../../cpu/cpu8
tests/virhostcpudata/linux-with-die/node/node0/cpu9 ../../cpu/cpu9
tests/virstoragetestdata/images/sub/link1 ../qcow2_raw-raw-reldir.qcow2
tests/virstoragetestdata/images/sub/link2 ../qcow2_qcow2-qcow2-symlink_raw-raw-reldir.qcow2
tests/virstoragetestdata/lookup/sub/link2 ../wrap
tests/vmx2xmldata/cdrom-ide-file-missing-datastore.xml cdrom-ide-empty.xml
tests/vmx2xmldata/cdrom-ide-file-missing-file.xml cdrom-ide-empty.xml
tests/vmx2xmldata/serial-pipe-client-app.xml serial-pipe.xml
tests/vmx2xmldata/serial-pipe-client-vm.xml serial-pipe.xml
tests/vmx2xmldata/serial-pipe-server-app.xml serial-pipe.xml
tests/vmx2xmldata/serial-pipe-server-vm.xml serial-pipe.xml

View File

@ -24,7 +24,7 @@
%define arches_vbox %{arches_x86}
%define arches_ceph %{arches_64bit}
%define arches_zfs %{arches_x86} %{power64} %{arm}
%define arches_numactl %{arches_x86} %{power64} aarch64
%define arches_numactl %{arches_x86} %{power64} aarch64 s390x
%define arches_numad %{arches_x86} %{power64} aarch64
# The hypervisor drivers that run in libvirtd
@ -181,6 +181,11 @@
%define with_dmidecode 0%{!?_without_dmidecode:1}
%endif
%define with_modular_daemons 0
%if 0%{?fedora} >= 35 || 0%{?rhel} >= 9
%define with_modular_daemons 1
%endif
# Force QEMU to run as non-root
%define qemu_user qemu
%define qemu_group qemu
@ -200,8 +205,8 @@
Summary: Library providing a simple virtualization API
Name: libvirt
Version: 7.6.0
Release: 2%{?dist}%{?extra_release}
Version: 7.8.0
Release: 1%{?dist}%{?extra_release}
License: LGPLv2+
URL: https://libvirt.org/
@ -221,12 +226,6 @@ Patch7: libvirt-RHEL-virscsi-Support-TAPEs-in-virSCSIDeviceGetDevName.patch
Patch8: libvirt-RHEL-virscsi-Introduce-and-use-virSCSIDeviceGetUnprivSGIOSysfsPath.patch
Patch9: libvirt-RHEL-virutil-Accept-non-block-devices-in-virGetDeviceID.patch
Patch10: libvirt-RHEL-Enable-usage-of-x-blockdev-reopen.patch
Patch11: libvirt-vmx-Parse-vm.genid.patch
Patch12: libvirt-qemu_migration-check-for-interface-type-hostdev.patch
Patch13: libvirt-util-Introduce-virProcessGroupKill.patch
Patch14: libvirt-util-introduce-virProcessGroupGet.patch
Patch15: libvirt-util-virPidFileForceCleanupPath-add-group-argument.patch
Patch16: libvirt-qemu-virtiofs-kill-the-whole-process-group.patch
Requires: libvirt-daemon = %{version}-%{release}
Requires: libvirt-daemon-config-network = %{version}-%{release}
@ -1115,6 +1114,12 @@ exit 1
%define arg_libssh2 -Dlibssh2=disabled
%endif
%if %{with_modular_daemons}
%define arg_remote_mode -Dremote_default_mode=direct
%else
%define arg_remote_mode -Dremote_default_mode=legacy
%endif
%define when %(date +"%%F-%%T")
%define where %(hostname)
%define who %{?packager}%{!?packager:Unknown}
@ -1145,7 +1150,7 @@ export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/%{name}.spec)
-Ddriver_vz=disabled \
-Ddriver_bhyve=disabled \
-Ddriver_ch=disabled \
-Dremote_default_mode=legacy \
%{?arg_remote_mode} \
-Ddriver_interface=enabled \
-Ddriver_network=enabled \
-Dstorage_fs=enabled \
@ -1287,6 +1292,29 @@ mv $RPM_BUILD_ROOT%{_datadir}/systemtap/tapset/libvirt_qemu_probes.stp \
# raising the test timeout
VIR_TEST_DEBUG=1 %meson_test --no-suite syntax-check --timeout-multiplier 10
%define libvirt_daemon_schedule_restart() mkdir -p %{_localstatedir}/lib/rpm-state/libvirt || : \
/bin/systemctl is-active %1.service 1>/dev/null 2>&1 && \
touch %{_localstatedir}/lib/rpm-state/libvirt/restart-%1 || :
%define libvirt_daemon_finish_restart() rm -f %{_localstatedir}/lib/rpm-state/libvirt/restart-%1 \
rmdir %{_localstatedir}/lib/rpm-state/libvirt 2>/dev/null || :
%define libvirt_daemon_needs_restart() -f %{_localstatedir}/lib/rpm-state/libvirt/restart-%1
%define libvirt_daemon_perform_restart() if test %libvirt_daemon_needs_restart %1 \
then \
/bin/systemctl try-restart %1.service >/dev/null 2>&1 || : \
fi \
%libvirt_daemon_finish_restart %1
%define libvirt_daemon_systemd_post() %systemd_post %1.socket %1-ro.socket %1-admin.socket %1.service
%define libvirt_daemon_systemd_post_inet() %systemd_post %1.socket %1-ro.socket %1-admin.socket %1-tls.socket %1-tcp.socket %1.service
%define libvirt_daemon_systemd_preun() %systemd_preun %1.service %1-ro.socket %1-admin.socket %1.socket
%define libvirt_daemon_systemd_preun_inet() %systemd_preun %1.service %1-ro.socket %1-admin.socket %1-tls.socket %1-tcp.socket %1.socket
%pre daemon
# 'libvirt' group is just to allow password-less polkit access to
# libvirtd. The uid number is irrelevant, so we use dynamic allocation
@ -1296,30 +1324,25 @@ getent group libvirt >/dev/null || groupadd -r libvirt
exit 0
%post daemon
%global post_units \\\
virtlockd.socket virtlockd-admin.socket \\\
virtlogd.socket virtlogd-admin.socket \\\
libvirtd.socket libvirtd-ro.socket libvirtd-admin.socket \\\
libvirtd-tcp.socket libvirtd-tls.socket \\\
libvirtd.service \\\
libvirt-guests.service
%libvirt_daemon_systemd_post virtlogd
%libvirt_daemon_systemd_post virtlockdd
%if %{with_modular_daemons}
%libvirt_daemon_systemd_post_inet virtproxyd
%else
%libvirt_daemon_systemd_post_inet libvirtd
%endif
%systemd_post %post_units
%systemd_post libvirt-guests.service
# request daemon restart in posttrans
mkdir -p %{_localstatedir}/lib/rpm-state/libvirt || :
touch %{_localstatedir}/lib/rpm-state/libvirt/restart || :
%libvirt_daemon_schedule_restart libvirtd
%preun daemon
%global preun_units \\\
libvirtd.service \\\
libvirtd-tcp.socket libvirtd-tls.socket \\\
libvirtd.socket libvirtd-ro.socket libvirtd-admin.socket \\\
virtlogd.socket virtlogd-admin.socket virtlogd.service \\\
virtlockd.socket virtlockd-admin.socket virtlockd.service \\\
libvirt-guests.service
%systemd_preun libvirt-guests.service
%systemd_preun %preun_units
%libvirt_daemon_systemd_preun_inet libvirtd
%libvirt_daemon_systemd_preun_inet virtproxyd
%libvirt_daemon_systemd_preun virtlogd
%libvirt_daemon_systemd_preun virtlockdd
%postun daemon
/bin/systemctl daemon-reload >/dev/null 2>&1 || :
@ -1341,7 +1364,8 @@ if [ $1 -ge 1 ] ; then
fi
%posttrans daemon
if [ -f %{_localstatedir}/lib/rpm-state/libvirt/restart ]; then
if test %libvirt_daemon_needs_restart libvirtd
then
# See if user has previously modified their install to
# tell libvirtd to use --listen
grep -E '^LIBVIRTD_ARGS=.*--listen' /etc/sysconfig/libvirtd 1>/dev/null 2>&1
@ -1377,18 +1401,156 @@ if [ -f %{_localstatedir}/lib/rpm-state/libvirt/restart ]; then
fi
fi
fi
rm -rf %{_localstatedir}/lib/rpm-state/libvirt || :
%libvirt_daemon_finish_restart libvirtd
%post daemon-driver-network
%if %{with_firewalld_zone}
%firewalld_reload
%endif
%if %{with_modular_daemons}
%libvirt_daemon_systemd_post virtnetworkd
%endif
%libvirt_daemon_schedule_restart virtnetworkd
%preun
%libvirt_daemon_systemd_preun virtnetworkd
%postun daemon-driver-network
%if %{with_firewalld_zone}
%firewalld_reload
%endif
%posttrans daemon-driver-network
%libvirt_daemon_perform_restart virtnetworkd
%post daemon-driver-nwfilter
%if %{with_modular_daemons}
%libvirt_daemon_systemd_post virtnwfilterd
%endif
%libvirt_daemon_schedule_restart virtnwfilterd
%preun daemon-driver-nwfilter
%libvirt_daemon_systemd_preun virtnwfilterd
%posttrans daemon-driver-nwfilter
%libvirt_daemon_perform_restart virtnwfilterd
%post daemon-driver-nodedev
%if %{with_modular_daemons}
%libvirt_daemon_systemd_post virtnodedevd
%endif
%libvirt_daemon_schedule_restart virtnodedevd
%preun daemon-driver-nodedev
%libvirt_daemon_systemd_preun virtnodedevd
%posttrans daemon-driver-nodedev
%libvirt_daemon_perform_restart virtnodedevd
%post daemon-driver-interface
%if %{with_modular_daemons}
%libvirt_daemon_systemd_post virtinterfaced
%endif
%libvirt_daemon_schedule_restart virtinterfaced
%preun daemon-driver-interface
%libvirt_daemon_systemd_preun virtinterfaced
%posttrans daemon-driver-interface
%libvirt_daemon_perform_restart virtinterfaced
%post daemon-driver-secret
%if %{with_modular_daemons}
%libvirt_daemon_systemd_post virtsecretd
%endif
%libvirt_daemon_schedule_restart virtsecretd
%preun daemon-driver-secret
%libvirt_daemon_systemd_preun virtsecretd
%posttrans daemon-driver-secret
%libvirt_daemon_perform_restart virtsecretd
%post daemon-driver-storage
%if %{with_modular_daemons}
%libvirt_daemon_systemd_post virtstoraged
%endif
%libvirt_daemon_schedule_restart virtstoraged
%preun daemon-driver-storage
%libvirt_daemon_systemd_preun virtstoraged
%posttrans daemon-driver-storage
%libvirt_daemon_perform_restart virtstoraged
%if %{with_qemu}
%post daemon-driver-qemu
%if %{with_modular_daemons}
%libvirt_daemon_systemd_post virtqemud
%endif
%libvirt_daemon_schedule_restart virtqemud
%preun daemon-driver-qemu
%libvirt_daemon_systemd_preun virtqemud
%posttrans daemon-driver-qemu
%libvirt_daemon_perform_restart virtqemud
%endif
%if %{with_lxc}
%post daemon-driver-lxc
%if %{with_modular_daemons}
%libvirt_daemon_systemd_post virtlxcd
%endif
%libvirt_daemon_schedule_restart virtlxcd
%preun daemon-driver-lxc
%libvirt_daemon_systemd_preun virtlxcd
%posttrans daemon-driver-lxc
%libvirt_daemon_perform_restart virtlxcd
%endif
%if %{with_vbox}
%post daemon-driver-vbox
%if %{with_modular_daemons}
%libvirt_daemon_systemd_post virtvboxd
%endif
%libvirt_daemon_schedule_restart virtvboxd
%preun daemon-driver-vbox
%libvirt_daemon_systemd_preun virtvboxd
%posttrans daemon-driver-vbox
%libvirt_daemon_perform_restart virtvboxd
%endif
%if %{with_libxl}
%post daemon-driver-libxl
%if %{with_modular_daemons}
%libvirt_daemon_systemd_post virtxend
%endif
%libvirt_daemon_schedule_restart virtxend
%preun daemon-driver-libxl
%libvirt_daemon_systemd_preun virtxend
%posttrans daemon-driver-libxl
%libvirt_daemon_perform_restart virtxend
%endif
%post daemon-config-network
if test $1 -eq 1 && test ! -f %{_sysconfdir}/libvirt/qemu/networks/default.xml ; then
# see if the network used by default network creates a conflict,
@ -1427,15 +1589,13 @@ if test $1 -eq 1 && test ! -f %{_sysconfdir}/libvirt/qemu/networks/default.xml ;
chmod 0600 %{_sysconfdir}/libvirt/qemu/networks/default.xml
# Make sure libvirt picks up the new network defininiton
mkdir -p %{_localstatedir}/lib/rpm-state/libvirt || :
touch %{_localstatedir}/lib/rpm-state/libvirt/restart || :
%libvirt_daemon_schedule_restart libvirtd
%libvirt_daemon_schedule_restart virtnetworkd
fi
%posttrans daemon-config-network
if [ -f %{_localstatedir}/lib/rpm-state/libvirt/restart ]; then
/bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || :
fi
rm -rf %{_localstatedir}/lib/rpm-state/libvirt || :
%libvirt_daemon_perform_restart libvirtd
%libvirt_daemon_perform_restart virtnetworkd
%post daemon-config-nwfilter
for datadir_file in %{_datadir}/libvirt/nwfilter/*.xml; do
@ -1446,15 +1606,12 @@ for datadir_file in %{_datadir}/libvirt/nwfilter/*.xml; do
fi
done
# Make sure libvirt picks up the new nwfilter defininitons
mkdir -p %{_localstatedir}/lib/rpm-state/libvirt || :
touch %{_localstatedir}/lib/rpm-state/libvirt/restart || :
%libvirt_daemon_schedule_restart libvirtd
%libvirt_daemon_schedule_restart virtnwfilterd
%posttrans daemon-config-nwfilter
if [ -f %{_localstatedir}/lib/rpm-state/libvirt/restart ]; then
/bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || :
fi
rm -rf %{_localstatedir}/lib/rpm-state/libvirt || :
%libvirt_daemon_perform_restart libvirtd
%libvirt_daemon_perform_restart virtnwfilterd
%if %{with_qemu}
%pre daemon-driver-qemu
@ -1941,6 +2098,13 @@ exit 0
%changelog
* Fri Oct 15 2021 Jiri Denemark <jdenemar@redhat.com> - 7.8.0-1
- Rebased to libvirt-7.8.0 (rhbz#2012802)
- The rebase also fixes the following bugs:
rhbz#1839070, rhbz#1942275, rhbz#1995865, rhbz#1806857, rhbz#1924616
rhbz#1978574, rhbz#1989457, rhbz#1965589, rhbz#1677608, rhbz#1926508
rhbz#1810863, rhbz#1845468, rhbz#1738392, rhbz#1965140
* Thu Sep 2 2021 Danilo C. L. de Paula <ddepaula@redhat.com> - 7.6.0-2.fc34
- Resolves: bz#2000225
(Rebase virt:rhel module:stream based on AV-8.6)