]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: vhost-user-fs: separate building of chardev string
authorJán Tomko <jtomko@redhat.com>
Tue, 17 Aug 2021 14:12:50 +0000 (16:12 +0200)
committerJán Tomko <jtomko@redhat.com>
Wed, 6 Oct 2021 10:03:12 +0000 (12:03 +0200)
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
src/qemu/qemu_command.c

index 90c8022b0717481bdce2296dc4daa601e8222424..7e76e188c116a88334e782c13e406ddc11f171e8 100644 (file)
@@ -2033,6 +2033,20 @@ qemuBuildDisksCommandLine(virCommand *cmd,
 }
 
 
+static char *
+qemuBuildVHostUserFsChardevStr(const virDomainFSDef *fs,
+                               const char *chardev_alias)
+{
+    g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
+
+    virBufferAddLit(&buf, "socket");
+    virBufferAsprintf(&buf, ",id=%s", chardev_alias);
+    virBufferAddLit(&buf, ",path=");
+    virQEMUBuildBufferEscapeComma(&buf, QEMU_DOMAIN_FS_PRIVATE(fs)->vhostuser_fs_sock);
+    return virBufferContentAndReset(&buf);
+}
+
+
 static int
 qemuBuildVHostUserFsCommandLine(virCommand *cmd,
                                 virDomainFSDef *fs,
@@ -2040,16 +2054,14 @@ qemuBuildVHostUserFsCommandLine(virCommand *cmd,
                                 qemuDomainObjPrivate *priv)
 {
     g_autofree char *chardev_alias = NULL;
+    g_autofree char *chrdevstr = NULL;
     g_auto(virBuffer) opt = VIR_BUFFER_INITIALIZER;
 
     chardev_alias = qemuDomainGetVhostUserChrAlias(fs->info.alias);
+    chrdevstr = qemuBuildVHostUserFsChardevStr(fs, chardev_alias);
 
     virCommandAddArg(cmd, "-chardev");
-    virBufferAddLit(&opt, "socket");
-    virBufferAsprintf(&opt, ",id=%s", chardev_alias);
-    virBufferAddLit(&opt, ",path=");
-    virQEMUBuildBufferEscapeComma(&opt, QEMU_DOMAIN_FS_PRIVATE(fs)->vhostuser_fs_sock);
-    virCommandAddArgBuffer(cmd, &opt);
+    virCommandAddArg(cmd, chrdevstr);
 
     virCommandAddArg(cmd, "-device");