diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index 5c7a9140b2..204a3ed522 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -1857,12 +1857,11 @@ static int lxcSetVcpuBWLive(virCgroupPtr cgroup, unsigned long long period, error: if (period) { - virErrorPtr saved = virSaveLastError(); + virErrorPtr saved; + + virErrorPreserveLast(&saved); virCgroupSetCpuCfsPeriod(cgroup, old_period); - if (saved) { - virSetError(saved); - virFreeError(saved); - } + virErrorRestore(&saved); } return -1; diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c index da0b055b85..d9939f102d 100644 --- a/src/lxc/lxc_process.c +++ b/src/lxc/lxc_process.c @@ -1568,7 +1568,7 @@ int virLXCProcessStart(virConnectPtr conn, rc = -1; } if (rc != 0) { - err = virSaveLastError(); + virErrorPreserveLast(&err); virLXCProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_FAILED); } virCommandFree(cmd); @@ -1582,10 +1582,7 @@ int virLXCProcessStart(virConnectPtr conn, virObjectUnref(cfg); virObjectUnref(caps); - if (err) { - virSetError(err); - virFreeError(err); - } + virErrorRestore(&err); return rc; }