53 lines
2.1 KiB
Diff
53 lines
2.1 KiB
Diff
From 05aa05e3b17000b2a886dddb2abdb183bd6d4295 Mon Sep 17 00:00:00 2001
|
|
Message-ID: <05aa05e3b17000b2a886dddb2abdb183bd6d4295.1744361503.git.jdenemar@redhat.com>
|
|
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
|
|
Date: Wed, 8 Jan 2025 17:37:03 +0000
|
|
Subject: [PATCH] util: don't attempt to acquire logind inhibitor if not
|
|
requested
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
When VIR_INHIBITOR_WHAT_NONE is passed to virInhibitorNew, it is
|
|
an indication that daemon shutdown should be inhibited, but no
|
|
OS level inhibitors acquired. This is done by the virtnetworkd
|
|
daemon, for example, to prevent shutdown while running virtual
|
|
machines are present, without blocking / delaying OS shutdown.
|
|
|
|
Unfortunately the code forgot to skip the DBus call in this case,
|
|
resulting in errors being logged.
|
|
|
|
Reviewed-by: Laine Stump <laine@redhat.com>
|
|
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
|
(cherry picked from commit caa10431cdd1aa476637ff721f1947c4e0b53da1)
|
|
Resolves: https://issues.redhat.com/browse/RHEL-83076
|
|
---
|
|
src/util/virinhibitor.c | 5 +++--
|
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/src/util/virinhibitor.c b/src/util/virinhibitor.c
|
|
index 647bdc9fbb..a95021de5a 100644
|
|
--- a/src/util/virinhibitor.c
|
|
+++ b/src/util/virinhibitor.c
|
|
@@ -152,7 +152,7 @@ virInhibitor *virInhibitorNew(virInhibitorWhat what,
|
|
virInhibitor *inhibitor = g_new0(virInhibitor, 1);
|
|
|
|
inhibitor->fd = -1;
|
|
- inhibitor->what = virInhibitorWhatFormat(what);
|
|
+ inhibitor->what = what ? virInhibitorWhatFormat(what) : NULL;
|
|
inhibitor->who = g_strdup(who);
|
|
inhibitor->why = g_strdup(why);
|
|
inhibitor->mode = virInhibitorModeTypeToString(mode);
|
|
@@ -171,7 +171,8 @@ void virInhibitorHold(virInhibitor *inhibitor)
|
|
inhibitor->action(true, inhibitor->actionData);
|
|
}
|
|
#ifdef G_OS_UNIX
|
|
- if (virInhibitorAcquire(
|
|
+ if (inhibitor->what &&
|
|
+ virInhibitorAcquire(
|
|
inhibitor->what, inhibitor->who, inhibitor->why,
|
|
inhibitor->mode, &inhibitor->fd) < 0) {
|
|
VIR_ERROR(_("Failed to acquire inhibitor: %1$s"),
|
|
--
|
|
2.49.0
|