diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index f95ed80fac..6027b30405 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -2856,7 +2856,7 @@ qemuProcessResctrlCreate(virQEMUDriver *driver, static char * -qemuProcessBuildPRHelperPidfilePath(virDomainObj *vm) +qemuProcessBuildPRHelperPidfilePathOld(virDomainObj *vm) { qemuDomainObjPrivate *priv = vm->privateData; const char *prdAlias = qemuDomainGetManagedPRAlias(); @@ -2865,6 +2865,18 @@ qemuProcessBuildPRHelperPidfilePath(virDomainObj *vm) } +static char * +qemuProcessBuildPRHelperPidfilePath(virDomainObj *vm) +{ + qemuDomainObjPrivate *priv = vm->privateData; + g_autofree char *domname = virDomainDefGetShortName(vm->def); + g_autofree char *prdName = g_strdup_printf("%s-%s", domname, qemuDomainGetManagedPRAlias()); + g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(priv->driver); + + return virPidFileBuildPath(cfg->stateDir, prdName); +} + + void qemuProcessKillManagedPRDaemon(virDomainObj *vm) { @@ -2877,6 +2889,14 @@ qemuProcessKillManagedPRDaemon(virDomainObj *vm) return; } + if (!virFileExists(pidfile)) { + g_free(pidfile); + if (!(pidfile = qemuProcessBuildPRHelperPidfilePathOld(vm))) { + VIR_WARN("Unable to construct pr-helper pidfile path"); + return; + } + } + virErrorPreserveLast(&orig_err); if (virPidFileForceCleanupPath(pidfile) < 0) { VIR_WARN("Unable to kill pr-helper process");