From dbb0baa5a74cecdac332f3d9d82f33cf517af8dd Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Tue, 28 Jul 2015 18:25:59 +0200 Subject: [PATCH] lxc: Don't accidentaly reset autostart flag in virLXCProcessCleanup virDomainDeleteConfig is meant to delete the persistent config and thus it resets vm->autostart. Copy parts of qemuProcessRemoveDomainStatus to a new helper to avoid using the incorrect function. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1230071 --- src/lxc/lxc_process.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c index 87ee484364..e99b039755 100644 --- a/src/lxc/lxc_process.c +++ b/src/lxc/lxc_process.c @@ -137,6 +137,23 @@ virLXCProcessReboot(virLXCDriverPtr driver, } +static void +lxcProcessRemoveDomainStatus(virLXCDriverConfigPtr cfg, + virDomainObjPtr vm) +{ + char ebuf[1024]; + char *file = NULL; + + if (virAsprintf(&file, "%s/%s.xml", cfg->stateDir, vm->def->name) < 0) + return; + + if (unlink(file) < 0 && errno != ENOENT && errno != ENOTDIR) + VIR_WARN("Failed to remove domain XML for %s: %s", + vm->def->name, virStrerror(errno, ebuf, sizeof(ebuf))); + VIR_FREE(file); +} + + /** * virLXCProcessCleanup: * @driver: pointer to driver structure @@ -180,7 +197,7 @@ static void virLXCProcessCleanup(virLXCDriverPtr driver, } virPidFileDelete(cfg->stateDir, vm->def->name); - virDomainDeleteConfig(cfg->stateDir, NULL, vm); + lxcProcessRemoveDomainStatus(cfg, vm); virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF, reason); vm->pid = -1; -- GitLab