Blob Blame History Raw
From 2bcbf4e9a10d8db84c212c7815456af6996bc6e9 Mon Sep 17 00:00:00 2001
Message-Id: <2bcbf4e9a10d8db84c212c7815456af6996bc6e9@dist-git>
From: Martin Kletzander <mkletzan@redhat.com>
Date: Fri, 4 Nov 2016 10:29:41 +0100
Subject: [PATCH] qemu: Abstract shmem socket path preparation

Put it into qemuDomainPrepareShmemChardev() so it can be used later.
Also don't fill in the path unless the server option is enabled.

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
(cherry picked from commit 0f61d7b5f2b5d011b58386e7bf1a48f75a15e9d7)

https://bugzilla.redhat.com/show_bug.cgi?id=1392031

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
---
 src/qemu/qemu_command.c |  5 +----
 src/qemu/qemu_domain.c  | 13 +++++++++++++
 src/qemu/qemu_domain.h  |  3 +++
 3 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 3ebfe84..adb743b 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -8513,10 +8513,7 @@ qemuBuildShmemBackendStr(virLogManagerPtr logManager,
 {
     char *devstr = NULL;
 
-    if (!shmem->server.chr.data.nix.path &&
-        virAsprintf(&shmem->server.chr.data.nix.path,
-                    "/var/lib/libvirt/shmem-%s-sock",
-                    shmem->name) < 0)
+    if (qemuDomainPrepareShmemChardev(shmem) < 0)
         return NULL;
 
     devstr = qemuBuildChrChardevStr(logManager, cmd, cfg, def,
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 8db2ed5..4f99c14 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -5993,6 +5993,19 @@ qemuDomainPrepareChannel(virDomainChrDefPtr channel,
 }
 
 
+int
+qemuDomainPrepareShmemChardev(virDomainShmemDefPtr shmem)
+{
+    if (!shmem->server.enabled ||
+        shmem->server.chr.data.nix.path)
+        return 0;
+
+    return virAsprintf(&shmem->server.chr.data.nix.path,
+                       "/var/lib/libvirt/shmem-%s-sock",
+                       shmem->name);
+}
+
+
 /**
  * qemuDomainVcpuHotplugIsInOrder:
  * @def: domain definition
diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
index f94bfc9..66ffe58 100644
--- a/src/qemu/qemu_domain.h
+++ b/src/qemu/qemu_domain.h
@@ -724,6 +724,9 @@ int qemuDomainPrepareChannel(virDomainChrDefPtr chr,
                              const char *domainChannelTargetDir)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
 
+int qemuDomainPrepareShmemChardev(virDomainShmemDefPtr shmem)
+    ATTRIBUTE_NONNULL(1);
+
 bool qemuDomainVcpuHotplugIsInOrder(virDomainDefPtr def)
     ATTRIBUTE_NONNULL(1);
 
-- 
2.10.2