---
src/lxc/lxc_driver.c | 61 +++++++++++++++++++++++++++----------------------
1 files changed, 34 insertions(+), 27 deletions(-)
diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
index 9f20d05..a917a46 100644
--- a/src/lxc/lxc_driver.c
+++ b/src/lxc/lxc_driver.c
@@ -1992,39 +1992,46 @@ static int lxcDomainSetAutostart(virDomainPtr dom,
autostart = (autostart != 0);
- if (vm->autostart != autostart) {
- if ((configFile = virDomainConfigFile(dom->conn, driver->configDir,
vm->def->name)) == NULL)
- goto cleanup;
- if ((autostartLink = virDomainConfigFile(dom->conn, driver->autostartDir,
vm->def->name)) == NULL)
- goto cleanup;
+ if (vm->autostart == autostart) {
+ ret = 0;
+ goto cleanup;
+ }
- if (autostart) {
- int err;
+ configFile = virDomainConfigFile(dom->conn, driver->configDir,
+ vm->def->name);
+ if (configFile == NULL)
+ goto cleanup;
+ autostartLink = virDomainConfigFile(dom->conn, driver->autostartDir,
+ vm->def->name);
+ if (autostartLink == NULL)
+ goto cleanup;
- if ((err = virFileMakePath(driver->autostartDir))) {
- virReportSystemError(dom->conn, err,
- _("Cannot create autostart directory
%s"),
- driver->autostartDir);
- goto cleanup;
- }
+ if (autostart) {
+ int err;
- if (symlink(configFile, autostartLink) < 0) {
- virReportSystemError(dom->conn, errno,
- _("Failed to create symlink '%s to
'%s'"),
- autostartLink, configFile);
- goto cleanup;
- }
- } else {
- if (unlink(autostartLink) < 0 && errno != ENOENT && errno
!= ENOTDIR) {
- virReportSystemError(dom->conn, errno,
- _("Failed to delete symlink
'%s'"),
- autostartLink);
- goto cleanup;
- }
+ if ((err = virFileMakePath(driver->autostartDir))) {
+ virReportSystemError(dom->conn, err,
+ _("Cannot create autostart directory %s"),
+ driver->autostartDir);
+ goto cleanup;
}
- vm->autostart = autostart;
+ if (symlink(configFile, autostartLink) < 0) {
+ virReportSystemError(dom->conn, errno,
+ _("Failed to create symlink '%s to
'%s'"),
+ autostartLink, configFile);
+ goto cleanup;
+ }
+ } else {
+ if (unlink(autostartLink) < 0 && errno != ENOENT && errno !=
ENOTDIR) {
+ virReportSystemError(dom->conn, errno,
+ _("Failed to delete symlink '%s'"),
+ autostartLink);
+ goto cleanup;
+ }
}
+
+ vm->autostart = autostart;
ret = 0;
cleanup:
--
1.6.2.5