qemu: Set memoryBackingDir in private data upon start

This way we keep the path for each running VM.

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Martin Kletzander
2024-09-18 10:40:59 +02:00
parent da8a1d7943
commit f58a4dc9d5
12 changed files with 26 additions and 2 deletions

View File

@@ -1795,7 +1795,7 @@ qemuGetMemoryBackingPath(qemuDomainObjPrivate *priv,
/* This is the old way of setting up per-domain directories */
static void
static int
qemuDomainSetPrivatePathsOld(virQEMUDriver *driver,
virDomainObj *vm)
{
@@ -1808,6 +1808,13 @@ qemuDomainSetPrivatePathsOld(virQEMUDriver *driver,
if (!priv->channelTargetDir)
priv->channelTargetDir = g_strdup_printf("%s/domain-%s",
cfg->channelTargetDir, vm->def->name);
if (!priv->memoryBackingDir &&
qemuGetMemoryBackingDomainPath(priv, vm->def,
&priv->memoryBackingDir) < 0)
return -1;
return 0;
}
@@ -1829,6 +1836,11 @@ qemuDomainSetPrivatePaths(virQEMUDriver *driver,
priv->channelTargetDir = g_strdup_printf("%s/%s",
cfg->channelTargetDir, domname);
if (!priv->memoryBackingDir &&
qemuGetMemoryBackingDomainPath(priv, vm->def,
&priv->memoryBackingDir) < 0)
return -1;
return 0;
}
@@ -3434,7 +3446,8 @@ qemuDomainObjPrivateXMLParse(xmlXPathContextPtr ctxt,
priv->memoryBackingDir = virXPathString("string(./memoryBackingDir/@path)", ctxt);
qemuDomainSetPrivatePathsOld(driver, vm);
if (qemuDomainSetPrivatePathsOld(driver, vm) < 0)
return -1;
if (virCPUDefParseXML(ctxt, "./cpu", VIR_CPU_TYPE_GUEST, &priv->origCPU,
false) < 0)