Fix autostart flag when loading running domains
[libvirt.git] / src / conf / domain_conf.c
index 65d4f89..be5267b 100644 (file)
@@ -9862,21 +9862,24 @@ static virDomainObjPtr virDomainLoadConfig(virCapsPtr caps,
                                       VIR_DOMAIN_XML_INACTIVE)))
         goto error;
 
-    /* if the domain is already in our hashtable, we don't need to do
-     * anything further
+    if ((autostartLink = virDomainConfigFile(autostartDir, name)) == NULL)
+        goto error;
+
+    if ((autostart = virFileLinkPointsTo(autostartLink, configFile)) < 0)
+        goto error;
+
+    /* if the domain is already in our hashtable, we only need to
+     * update the autostart flag
      */
     if ((dom = virDomainFindByUUID(doms, def->uuid))) {
+        dom->autostart = autostart;
+
         VIR_FREE(configFile);
+        VIR_FREE(autostartLink);
         virDomainDefFree(def);
         return dom;
     }
 
-    if ((autostartLink = virDomainConfigFile(autostartDir, name)) == NULL)
-        goto error;
-
-    if ((autostart = virFileLinkPointsTo(autostartLink, configFile)) < 0)
-        goto error;
-
     if (!(dom = virDomainAssignDef(caps, doms, def, false)))
         goto error;