mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
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
This commit is contained in:
parent
afe69e6582
commit
dbb0baa5a7
@ -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:
|
* virLXCProcessCleanup:
|
||||||
* @driver: pointer to driver structure
|
* @driver: pointer to driver structure
|
||||||
@ -180,7 +197,7 @@ static void virLXCProcessCleanup(virLXCDriverPtr driver,
|
|||||||
}
|
}
|
||||||
|
|
||||||
virPidFileDelete(cfg->stateDir, vm->def->name);
|
virPidFileDelete(cfg->stateDir, vm->def->name);
|
||||||
virDomainDeleteConfig(cfg->stateDir, NULL, vm);
|
lxcProcessRemoveDomainStatus(cfg, vm);
|
||||||
|
|
||||||
virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF, reason);
|
virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF, reason);
|
||||||
vm->pid = -1;
|
vm->pid = -1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user