From fd4aca6cf5203d3be8d7db8f8ae20e3cbf65215a Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Thu, 4 Nov 2021 17:12:13 +0100 Subject: [PATCH] qemu: Use qemuBuildChrChardevCommand for vhost-user disk backend MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now that the API for qemuBuildChrChardevCommand is sane enough, we can use it to centralize formatting of '-chardev' generally. For virtiofs we don't have a centrally stored chardev source so we allocate one inline for temporary use. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- src/qemu/qemu_block.c | 1 - src/qemu/qemu_block.h | 1 - src/qemu/qemu_command.c | 18 ++++-------------- 3 files changed, 4 insertions(+), 16 deletions(-) diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index f6a7f2b750..87dca40179 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -1655,7 +1655,6 @@ qemuBlockStorageSourceAttachDataFree(qemuBlockStorageSourceAttachData *data) g_free(data->driveCmd); g_free(data->driveAlias); g_free(data->chardevAlias); - g_free(data->chardevCmd); g_free(data); } diff --git a/src/qemu/qemu_block.h b/src/qemu/qemu_block.h index 54601a48a9..184a549d5c 100644 --- a/src/qemu/qemu_block.h +++ b/src/qemu/qemu_block.h @@ -99,7 +99,6 @@ struct qemuBlockStorageSourceAttachData { virDomainChrSourceDef *chardevDef; char *chardevAlias; - char *chardevCmd; bool chardevAdded; virJSONValue *authsecretProps; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 0fb7b83d3f..0bfe76c29c 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -2591,8 +2591,10 @@ qemuBuildBlockStorageSourceAttachDataCommandline(virCommand *cmd, if (data->driveCmd) virCommandAddArgList(cmd, "-drive", data->driveCmd, NULL); - if (data->chardevCmd) - virCommandAddArgList(cmd, "-chardev", data->chardevCmd, NULL); + if (data->chardevDef) { + if (qemuBuildChardevCommand(cmd, data->chardevDef, data->chardevAlias, qemuCaps) < 0) + return -1; + } if (data->storageProps) { if (!(tmp = virJSONValueToString(data->storageProps, false))) @@ -10959,24 +10961,12 @@ static qemuBlockStorageSourceAttachData * qemuBuildStorageSourceAttachPrepareChardev(virDomainDiskDef *disk) { g_autoptr(qemuBlockStorageSourceAttachData) data = NULL; - g_auto(virBuffer) chardev = VIR_BUFFER_INITIALIZER; data = g_new0(qemuBlockStorageSourceAttachData, 1); data->chardevDef = disk->src->vhostuser; data->chardevAlias = qemuDomainGetVhostUserChrAlias(disk->info.alias); - virBufferAddLit(&chardev, "socket"); - virBufferAsprintf(&chardev, ",id=%s", data->chardevAlias); - virBufferAddLit(&chardev, ",path="); - virQEMUBuildBufferEscapeComma(&chardev, disk->src->vhostuser->data.nix.path); - - qemuBuildChrChardevReconnectStr(&chardev, - &disk->src->vhostuser->data.nix.reconnect); - - if (!(data->chardevCmd = virBufferContentAndReset(&chardev))) - return NULL; - return g_steal_pointer(&data); }