From nobody Sun Feb 8 07:08:07 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) client-ip=205.139.110.61; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1575469301; cv=none; d=zohomail.com; s=zohoarc; b=exsHs5rF9gEkZXO98LLXPQ9qj7MR2Pnrunh6HESz7HG4f/SWcfomYB9mvR3rGfnrA6JehnqVVBH07lqYHuWClReCXuEBXEjaWht95rmoPh/PH9siy2Bj+35fImjVcfX8M05MtYNynWewwxzx7b4Pa+Wg9+NjOL4pPhTMjiakNEg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1575469301; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=DvmaOnvlO07bipRt8smI7afrCT7d7MBimzJhXvXiNYM=; b=YmstAAvXcbX2FC3YDkyuAhI8c64NrO03ajWG992HW/Nvvot6ym4d37LjWrF9ZioKWG7SKThDHIszHsuuJzZP9g87wOpTg5cufsZ2raNSN+0rKY6t5WZt24R8T6Ygya7JP48JvWoVe+OjtuNbRa4qWDLQR+iLNlhoVetAInaemJw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 205.139.110.61 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) by mx.zohomail.com with SMTPS id 157546930100447.56753738093062; Wed, 4 Dec 2019 06:21:41 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-376-XQQTVLW9O4OejSgcmuqJhg-1; Wed, 04 Dec 2019 09:21:31 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 068EA12A7E56; Wed, 4 Dec 2019 14:21:25 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D069B600C8; Wed, 4 Dec 2019 14:21:24 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 634B918089C8; Wed, 4 Dec 2019 14:21:24 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id xB4ELNR2008088 for ; Wed, 4 Dec 2019 09:21:23 -0500 Received: by smtp.corp.redhat.com (Postfix) id 3936367E62; Wed, 4 Dec 2019 14:21:23 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-112-55.ams2.redhat.com [10.36.112.55]) by smtp.corp.redhat.com (Postfix) with ESMTP id F06C1608F7; Wed, 4 Dec 2019 14:21:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1575469297; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=DvmaOnvlO07bipRt8smI7afrCT7d7MBimzJhXvXiNYM=; b=C0ReOlGn14Asznrwc/z3ykLGH9tdpaXU0gIo86cmQiWvLyvylNYreWABI5ne5PSgxzqHwU y25SohpovyuCI8BE/HxIcDRrl55g5TSIpTiwLbvvFEiJWPimwfe1cY9gRpnAIKY3YiqS7+ bc3CvthWMSj2kHA28BkRvD2GyjEUXbs= From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Wed, 4 Dec 2019 14:20:46 +0000 Message-Id: <20191204142113.2961028-4-berrange@redhat.com> In-Reply-To: <20191204142113.2961028-1-berrange@redhat.com> References: <20191204142113.2961028-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 03/30] conf: sanitize virDomainSaveStatus & virDomainSaveConfig APIs X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-MC-Unique: XQQTVLW9O4OejSgcmuqJhg-1 X-Mimecast-Spam-Score: 0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Our normal practice is for the object type to be the name prefix, and the object instance be the first parameter passed in. Rename these to virDomainObjSave and virDomainDefSave moving their primary parameter to be the first one. Ensure that the xml options are passed into both functions in prep for future work. Finally enforce checking of the return type and mark all parameters as non-NULL. Signed-off-by: Daniel P. Berrang=C3=A9 --- src/bhyve/bhyve_driver.c | 4 +- src/bhyve/bhyve_process.c | 10 ++- src/conf/domain_conf.c | 31 +++++----- src/conf/domain_conf.h | 26 ++++---- src/libvirt_private.syms | 5 +- src/libxl/libxl_domain.c | 2 +- src/libxl/libxl_driver.c | 35 ++++++----- src/libxl/libxl_migration.c | 6 +- src/lxc/lxc_driver.c | 39 ++++++------ src/lxc/lxc_process.c | 6 +- src/qemu/qemu_domain.c | 6 +- src/qemu/qemu_driver.c | 119 ++++++++++++++++++------------------ src/qemu/qemu_hotplug.c | 8 +-- src/qemu/qemu_migration.c | 8 +-- src/qemu/qemu_process.c | 36 +++++------ 15 files changed, 171 insertions(+), 170 deletions(-) diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c index d40ae1cd23..b8a206bb1e 100644 --- a/src/bhyve/bhyve_driver.c +++ b/src/bhyve/bhyve_driver.c @@ -545,8 +545,8 @@ bhyveDomainDefineXMLFlags(virConnectPtr conn, const cha= r *xml, unsigned int flag def =3D NULL; vm->persistent =3D 1; =20 - if (virDomainSaveConfig(BHYVE_CONFIG_DIR, caps, - vm->newDef ? vm->newDef : vm->def) < 0) { + if (virDomainDefSave(vm->newDef ? vm->newDef : vm->def, + privconn->xmlopt, caps, BHYVE_CONFIG_DIR) < 0) { virDomainObjListRemove(privconn->domains, vm); goto cleanup; } diff --git a/src/bhyve/bhyve_process.c b/src/bhyve/bhyve_process.c index 13123fdce3..c10e5500c9 100644 --- a/src/bhyve/bhyve_process.c +++ b/src/bhyve/bhyve_process.c @@ -211,9 +211,8 @@ virBhyveProcessStart(virConnectPtr conn, virDomainObjSetState(vm, VIR_DOMAIN_RUNNING, reason); priv->mon =3D bhyveMonitorOpen(vm, driver); =20 - if (virDomainSaveStatus(driver->xmlopt, - BHYVE_STATE_DIR, - vm, caps) < 0) + if (virDomainObjSave(vm, driver->xmlopt, caps, + BHYVE_STATE_DIR) < 0) goto cleanup; =20 ret =3D 0; @@ -430,9 +429,8 @@ virBhyveProcessReconnect(virDomainObjPtr vm, vm->def->id =3D -1; virDomainObjSetState(vm, VIR_DOMAIN_SHUTOFF, VIR_DOMAIN_SHUTOFF_UNKNOWN); - ignore_value(virDomainSaveStatus(data->driver->xmlopt, - BHYVE_STATE_DIR, - vm, caps)); + ignore_value(virDomainObjSave(vm, data->driver->xmlopt, caps, + BHYVE_STATE_DIR)); } =20 virObjectUnref(caps); diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 9580884747..87bbb2d263 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -29014,10 +29014,10 @@ virDomainDefCompatibleDevice(virDomainDefPtr def, return 0; } =20 -int -virDomainSaveXML(const char *configDir, - virDomainDefPtr def, - const char *xml) +static int +virDomainDefSaveXML(virDomainDefPtr def, + const char *configDir, + const char *xml) { char uuidstr[VIR_UUID_STRING_BUFLEN]; g_autofree char *configFile =3D NULL; @@ -29042,23 +29042,24 @@ virDomainSaveXML(const char *configDir, } =20 int -virDomainSaveConfig(const char *configDir, - virCapsPtr caps, - virDomainDefPtr def) +virDomainDefSave(virDomainDefPtr def, + virDomainXMLOptionPtr xmlopt G_GNUC_UNUSED, + virCapsPtr caps, + const char *configDir) { g_autofree char *xml =3D NULL; =20 if (!(xml =3D virDomainDefFormat(def, caps, VIR_DOMAIN_DEF_FORMAT_SECU= RE))) return -1; =20 - return virDomainSaveXML(configDir, def, xml); + return virDomainDefSaveXML(def, configDir, xml); } =20 int -virDomainSaveStatus(virDomainXMLOptionPtr xmlopt, - const char *statusDir, - virDomainObjPtr obj, - virCapsPtr caps) +virDomainObjSave(virDomainObjPtr obj, + virDomainXMLOptionPtr xmlopt, + virCapsPtr caps, + const char *statusDir) { unsigned int flags =3D (VIR_DOMAIN_DEF_FORMAT_SECURE | VIR_DOMAIN_DEF_FORMAT_STATUS | @@ -29071,7 +29072,7 @@ virDomainSaveStatus(virDomainXMLOptionPtr xmlopt, if (!(xml =3D virDomainObjFormat(xmlopt, obj, caps, flags))) return -1; =20 - return virDomainSaveXML(statusDir, obj->def, xml); + return virDomainDefSaveXML(obj->def, statusDir, xml); } =20 =20 @@ -30173,7 +30174,7 @@ virDomainObjSetMetadata(virDomainObjPtr vm, if (virDomainDefSetMetadata(def, type, metadata, key, uri) < 0) return -1; =20 - if (virDomainSaveStatus(xmlopt, stateDir, vm, caps) < 0) + if (virDomainObjSave(vm, xmlopt, caps, stateDir) < 0) return -1; } =20 @@ -30182,7 +30183,7 @@ virDomainObjSetMetadata(virDomainObjPtr vm, uri) < 0) return -1; =20 - if (virDomainSaveConfig(configDir, caps, persistentDef) < 0) + if (virDomainDefSave(persistentDef, xmlopt, caps, configDir) < 0) return -1; } =20 diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 49cb6970e6..d1c375092e 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -3289,17 +3289,21 @@ ssize_t virDomainRedirdevDefFind(virDomainDefPtr de= f, virDomainRedirdevDefPtr redirdev); virDomainRedirdevDefPtr virDomainRedirdevDefRemove(virDomainDefPtr def, si= ze_t idx); =20 -int virDomainSaveXML(const char *configDir, - virDomainDefPtr def, - const char *xml); - -int virDomainSaveConfig(const char *configDir, - virCapsPtr caps, - virDomainDefPtr def); -int virDomainSaveStatus(virDomainXMLOptionPtr xmlopt, - const char *statusDir, - virDomainObjPtr obj, - virCapsPtr caps) G_GNUC_WARN_UNUSED_RESULT; +int virDomainDefSave(virDomainDefPtr def, + virDomainXMLOptionPtr xmlopt, + virCapsPtr caps, + const char *configDir) + G_GNUC_WARN_UNUSED_RESULT + ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) + ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4); + +int virDomainObjSave(virDomainObjPtr obj, + virDomainXMLOptionPtr xmlopt, + virCapsPtr caps, + const char *statusDir) + G_GNUC_WARN_UNUSED_RESULT + ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) + ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4); =20 typedef void (*virDomainLoadConfigNotify)(virDomainObjPtr dom, int newDomain, diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 0864de030b..7bacf02f0c 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -309,6 +309,7 @@ virDomainDefParseFile; virDomainDefParseNode; virDomainDefParseString; virDomainDefPostParse; +virDomainDefSave; virDomainDefSetMemoryTotal; virDomainDefSetVcpus; virDomainDefSetVcpusMax; @@ -526,6 +527,7 @@ virDomainObjNew; virDomainObjParseFile; virDomainObjParseNode; virDomainObjRemoveTransientDef; +virDomainObjSave; virDomainObjSetDefTransient; virDomainObjSetMetadata; virDomainObjSetState; @@ -555,9 +557,6 @@ virDomainRNGModelTypeToString; virDomainRNGRemove; virDomainRunningReasonTypeFromString; virDomainRunningReasonTypeToString; -virDomainSaveConfig; -virDomainSaveStatus; -virDomainSaveXML; virDomainSCSIDriveAddressIsUsed; virDomainSeclabelTypeFromString; virDomainSeclabelTypeToString; diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c index 90ea2c9ece..9b9b17b173 100644 --- a/src/libxl/libxl_domain.c +++ b/src/libxl/libxl_domain.c @@ -1463,7 +1463,7 @@ libxlDomainStart(libxlDriverPrivatePtr driver, virDomainObjSetState(vm, VIR_DOMAIN_PAUSED, VIR_DOMAIN_PAUSED_USER= ); } =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps) = < 0) + if (virDomainObjSave(vm, driver->xmlopt, cfg->caps, cfg->stateDir) < 0) goto destroy_dom; =20 if (virAtomicIntInc(&driver->nactive) =3D=3D 1 && driver->inhibitCallb= ack) diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index 44a74e8779..b885cf0d00 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -453,7 +453,7 @@ libxlReconnectDomain(virDomainObjPtr vm, =20 libxlReconnectNotifyNets(vm->def); =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps) = < 0) + if (virDomainObjSave(vm, driver->xmlopt, cfg->caps, cfg->stateDir) < 0) VIR_WARN("Cannot update XML for running Xen guest %s", vm->def->na= me); =20 /* now that we know it's reconnected call the hook if present */ @@ -1188,7 +1188,7 @@ libxlDomainSuspend(virDomainPtr dom) VIR_DOMAIN_EVENT_SUSPENDED_PAUSED= ); } =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps) = < 0) + if (virDomainObjSave(vm, driver->xmlopt, cfg->caps, cfg->stateDir) < 0) goto endjob; =20 ret =3D 0; @@ -1242,7 +1242,7 @@ libxlDomainResume(virDomainPtr dom) VIR_DOMAIN_EVENT_RESUMED_UNPAUSED= ); } =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps) = < 0) + if (virDomainObjSave(vm, driver->xmlopt, cfg->caps, cfg->stateDir) < 0) goto endjob; =20 ret =3D 0; @@ -1667,7 +1667,7 @@ libxlDomainSetMemoryFlags(virDomainPtr dom, unsigned = long newmem, virDomainDefSetMemoryTotal(persistentDef, newmem); if (persistentDef->mem.cur_balloon > newmem) persistentDef->mem.cur_balloon =3D newmem; - ret =3D virDomainSaveConfig(cfg->configDir, cfg->caps, persist= entDef); + ret =3D virDomainDefSave(persistentDef, driver->xmlopt, cfg->c= aps, cfg->configDir); goto endjob; } =20 @@ -1700,7 +1700,7 @@ libxlDomainSetMemoryFlags(virDomainPtr dom, unsigned = long newmem, if (flags & VIR_DOMAIN_MEM_CONFIG) { sa_assert(persistentDef); persistentDef->mem.cur_balloon =3D newmem; - ret =3D virDomainSaveConfig(cfg->configDir, cfg->caps, persist= entDef); + ret =3D virDomainDefSave(persistentDef, driver->xmlopt, cfg->c= aps, cfg->configDir); goto endjob; } } @@ -2351,13 +2351,13 @@ libxlDomainSetVcpusFlags(virDomainPtr dom, unsigned= int nvcpus, ret =3D 0; =20 if (flags & VIR_DOMAIN_VCPU_LIVE) { - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->ca= ps) < 0) { + if (virDomainObjSave(vm, driver->xmlopt, cfg->caps, cfg->stateDir)= < 0) { VIR_WARN("Unable to save status on vm %s after changing vcpus", vm->def->name); } } if (flags & VIR_DOMAIN_VCPU_CONFIG) { - if (virDomainSaveConfig(cfg->configDir, cfg->caps, def) < 0) { + if (virDomainDefSave(def, driver->xmlopt, cfg->caps, cfg->configDi= r) < 0) { VIR_WARN("Unable to save configuration of vm %s after changing= vcpus", vm->def->name); } @@ -2507,9 +2507,9 @@ libxlDomainPinVcpuFlags(virDomainPtr dom, unsigned in= t vcpu, ret =3D 0; =20 if (flags & VIR_DOMAIN_AFFECT_LIVE) { - ret =3D virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg= ->caps); + ret =3D virDomainObjSave(vm, driver->xmlopt, cfg->caps, cfg->state= Dir); } else if (flags & VIR_DOMAIN_AFFECT_CONFIG) { - ret =3D virDomainSaveConfig(cfg->configDir, cfg->caps, targetDef); + ret =3D virDomainDefSave(targetDef, driver->xmlopt, cfg->caps, cfg= ->configDir); } =20 endjob: @@ -2869,9 +2869,8 @@ libxlDomainDefineXMLFlags(virConnectPtr conn, const c= har *xml, unsigned int flag =20 vm->persistent =3D 1; =20 - if (virDomainSaveConfig(cfg->configDir, - cfg->caps, - vm->newDef ? vm->newDef : vm->def) < 0) { + if (virDomainDefSave(vm->newDef ? vm->newDef : vm->def, + driver->xmlopt, cfg->caps, cfg->configDir) < 0) { virDomainObjListRemove(driver->domains, vm); goto cleanup; } @@ -4145,7 +4144,7 @@ libxlDomainAttachDeviceFlags(virDomainPtr dom, const = char *xml, * update domain status forcibly because the domain status may be * changed even if we attach the device failed. */ - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->ca= ps) < 0) + if (virDomainObjSave(vm, driver->xmlopt, cfg->caps, cfg->stateDir)= < 0) goto endjob; } =20 @@ -4153,7 +4152,7 @@ libxlDomainAttachDeviceFlags(virDomainPtr dom, const = char *xml, =20 /* Finally, if no error until here, we can save config. */ if (flags & VIR_DOMAIN_DEVICE_MODIFY_CONFIG) { - ret =3D virDomainSaveConfig(cfg->configDir, cfg->caps, vmdef); + ret =3D virDomainDefSave(vmdef, driver->xmlopt, cfg->caps, cfg->co= nfigDir); if (!ret) { virDomainObjAssignDef(vm, vmdef, false, NULL); vmdef =3D NULL; @@ -4236,7 +4235,7 @@ libxlDomainDetachDeviceFlags(virDomainPtr dom, const = char *xml, * update domain status forcibly because the domain status may be * changed even if we attach the device failed. */ - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->ca= ps) < 0) + if (virDomainObjSave(vm, driver->xmlopt, cfg->caps, cfg->stateDir)= < 0) goto endjob; } =20 @@ -4244,7 +4243,7 @@ libxlDomainDetachDeviceFlags(virDomainPtr dom, const = char *xml, =20 /* Finally, if no error until here, we can save config. */ if (flags & VIR_DOMAIN_DEVICE_MODIFY_CONFIG) { - ret =3D virDomainSaveConfig(cfg->configDir, cfg->caps, vmdef); + ret =3D virDomainDefSave(vmdef, driver->xmlopt, cfg->caps, cfg->co= nfigDir); if (!ret) { virDomainObjAssignDef(vm, vmdef, false, NULL); vmdef =3D NULL; @@ -4324,13 +4323,13 @@ libxlDomainUpdateDeviceFlags(virDomainPtr dom, cons= t char *xml, * update domain status forcibly because the domain status may be * changed even if we attach the device failed. */ - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->ca= ps) < 0) + if (virDomainObjSave(vm, driver->xmlopt, cfg->caps, cfg->stateDir)= < 0) ret =3D -1; } =20 /* Finally, if no error until here, we can save config. */ if (!ret && (flags & VIR_DOMAIN_DEVICE_MODIFY_CONFIG)) { - ret =3D virDomainSaveConfig(cfg->configDir, cfg->caps, vmdef); + ret =3D virDomainDefSave(vmdef, driver->xmlopt, cfg->caps, cfg->co= nfigDir); if (!ret) { virDomainObjAssignDef(vm, vmdef, false, NULL); vmdef =3D NULL; diff --git a/src/libxl/libxl_migration.c b/src/libxl/libxl_migration.c index 3f87c35b1c..65ff8271a7 100644 --- a/src/libxl/libxl_migration.c +++ b/src/libxl/libxl_migration.c @@ -1326,7 +1326,7 @@ libxlDomainMigrationDstFinish(virConnectPtr dconn, driver->xmlopt, vm, NUL= L))) goto cleanup; =20 - if (virDomainSaveConfig(cfg->configDir, cfg->caps, vmdef) < 0) + if (virDomainDefSave(vmdef, driver->xmlopt, cfg->caps, cfg->config= Dir) < 0) goto cleanup; =20 event =3D virDomainEventLifecycleNewFromObj(vm, @@ -1338,7 +1338,7 @@ libxlDomainMigrationDstFinish(virConnectPtr dconn, event =3D NULL; } =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps) = < 0) + if (virDomainObjSave(vm, driver->xmlopt, cfg->caps, cfg->stateDir) < 0) goto cleanup; =20 dom =3D virGetDomain(dconn, vm->def->name, vm->def->uuid, vm->def->id); @@ -1388,7 +1388,7 @@ libxlDomainMigrationSrcConfirm(libxlDriverPrivatePtr = driver, VIR_DOMAIN_PAUSED_MIGRATION); event =3D virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVE= NT_SUSPENDED, VIR_DOMAIN_EVENT_SUSPENDED_MIGRATED); - ignore_value(virDomainSaveStatus(driver->xmlopt, cfg->stateDir= , vm, cfg->caps)); + ignore_value(virDomainObjSave(vm, driver->xmlopt, cfg->caps, c= fg->stateDir)); } goto cleanup; } diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index 826bf074e3..cb0ab6e0d5 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -443,8 +443,8 @@ lxcDomainDefineXMLFlags(virConnectPtr conn, const char = *xml, unsigned int flags) def =3D NULL; vm->persistent =3D 1; =20 - if (virDomainSaveConfig(cfg->configDir, driver->caps, - vm->newDef ? vm->newDef : vm->def) < 0) { + if (virDomainDefSave(vm->newDef ? vm->newDef : vm->def, + driver->xmlopt, driver->caps, cfg->configDir) < 0= ) { virDomainObjListRemove(driver->domains, vm); goto cleanup; } @@ -677,8 +677,8 @@ static int lxcDomainSetMemoryFlags(virDomainPtr dom, un= signed long newmem, virDomainDefSetMemoryTotal(persistentDef, newmem); if (persistentDef->mem.cur_balloon > newmem) persistentDef->mem.cur_balloon =3D newmem; - if (virDomainSaveConfig(cfg->configDir, driver->caps, - persistentDef) < 0) + if (virDomainDefSave(persistentDef, + driver->xmlopt, driver->caps, cfg->config= Dir) < 0) goto endjob; } } else { @@ -705,14 +705,14 @@ static int lxcDomainSetMemoryFlags(virDomainPtr dom, = unsigned long newmem, } =20 def->mem.cur_balloon =3D newmem; - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, dri= ver->caps) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->st= ateDir) < 0) goto endjob; } =20 if (persistentDef) { persistentDef->mem.cur_balloon =3D newmem; - if (virDomainSaveConfig(cfg->configDir, driver->caps, - persistentDef) < 0) + if (virDomainDefSave(persistentDef, + driver->xmlopt, driver->caps, cfg->config= Dir) < 0) goto endjob; } } @@ -857,11 +857,11 @@ lxcDomainSetMemoryParameters(virDomainPtr dom, #undef VIR_SET_MEM_PARAMETER =20 if (def && - virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->cap= s) < 0) + virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) = < 0) goto endjob; =20 if (persistentDef && - virDomainSaveConfig(cfg->configDir, driver->caps, persistentDef) <= 0) + virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, cfg-= >configDir) < 0) goto endjob; /* QEMU and LXC implementations are identical */ =20 @@ -1967,12 +1967,13 @@ lxcDomainSetSchedulerParametersFlags(virDomainPtr d= om, } } =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->cap= s) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) = < 0) goto endjob; =20 =20 if (persistentDef) { - rc =3D virDomainSaveConfig(cfg->configDir, driver->caps, persisten= tDefCopy); + rc =3D virDomainDefSave(persistentDefCopy, driver->xmlopt, driver-= >caps, + cfg->configDir); if (rc < 0) goto endjob; =20 @@ -2672,7 +2673,7 @@ lxcDomainSetBlkioParameters(virDomainPtr dom, } } =20 - if (virDomainSaveConfig(cfg->configDir, driver->caps, persistentDe= f) < 0) + if (virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, = cfg->configDir) < 0) ret =3D -1; } =20 @@ -3029,7 +3030,7 @@ static int lxcDomainSuspend(virDomainPtr dom) VIR_DOMAIN_EVENT_SUSPENDED_PAUSED= ); } =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->cap= s) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) = < 0) goto endjob; ret =3D 0; =20 @@ -3086,7 +3087,7 @@ static int lxcDomainResume(virDomainPtr dom) VIR_DOMAIN_EVENT_RESUMED_UNPAUSED= ); } =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->cap= s) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) = < 0) goto endjob; ret =3D 0; =20 @@ -4743,7 +4744,7 @@ static int lxcDomainAttachDeviceFlags(virDomainPtr do= m, * changed even if we failed to attach the device. For example, * a new controller may be created. */ - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) { + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) { ret =3D -1; goto endjob; } @@ -4751,7 +4752,7 @@ static int lxcDomainAttachDeviceFlags(virDomainPtr do= m, =20 /* Finally, if no error until here, we can save config. */ if (flags & VIR_DOMAIN_AFFECT_CONFIG) { - ret =3D virDomainSaveConfig(cfg->configDir, driver->caps, vmdef); + ret =3D virDomainDefSave(vmdef, driver->xmlopt, driver->caps, cfg-= >configDir); if (!ret) { virDomainObjAssignDef(vm, vmdef, false, NULL); vmdef =3D NULL; @@ -4830,7 +4831,7 @@ static int lxcDomainUpdateDeviceFlags(virDomainPtr do= m, if (lxcDomainUpdateDeviceConfig(vmdef, dev) < 0) goto endjob; =20 - if (virDomainSaveConfig(cfg->configDir, driver->caps, vmdef) < 0) + if (virDomainDefSave(vmdef, driver->xmlopt, driver->caps, cfg->configD= ir) < 0) goto endjob; =20 virDomainObjAssignDef(vm, vmdef, false, NULL); @@ -4917,7 +4918,7 @@ static int lxcDomainDetachDeviceFlags(virDomainPtr do= m, * changed even if we failed to attach the device. For example, * a new controller may be created. */ - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) { + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) { ret =3D -1; goto endjob; } @@ -4925,7 +4926,7 @@ static int lxcDomainDetachDeviceFlags(virDomainPtr do= m, =20 /* Finally, if no error until here, we can save config. */ if (flags & VIR_DOMAIN_AFFECT_CONFIG) { - ret =3D virDomainSaveConfig(cfg->configDir, driver->caps, vmdef); + ret =3D virDomainDefSave(vmdef, driver->xmlopt, driver->caps, cfg-= >configDir); if (!ret) { virDomainObjAssignDef(vm, vmdef, false, NULL); vmdef =3D NULL; diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c index 9b62a93096..cae8bbacb5 100644 --- a/src/lxc/lxc_process.c +++ b/src/lxc/lxc_process.c @@ -790,7 +790,7 @@ static void virLXCProcessMonitorInitNotify(virLXCMonito= rPtr mon G_GNUC_UNUSED, } virDomainAuditInit(vm, initpid, inode); =20 - if (virDomainSaveStatus(lxc_driver->xmlopt, cfg->stateDir, vm, lxc_dri= ver->caps) < 0) + if (virDomainObjSave(vm, lxc_driver->xmlopt, lxc_driver->caps, cfg->st= ateDir) < 0) VIR_WARN("Cannot update XML with PID for LXC %s", vm->def->name); =20 virObjectUnlock(vm); @@ -1457,7 +1457,7 @@ int virLXCProcessStart(virConnectPtr conn, =20 /* Write domain status to disk for the controller to * read when it starts */ - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->cap= s) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) = < 0) goto cleanup; =20 /* Allow the child to exec the controller */ @@ -1696,7 +1696,7 @@ virLXCProcessReconnectDomain(virDomainObjPtr vm, =20 virLXCProcessReconnectNotifyNets(vm->def); =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) VIR_WARN("Cannot update XML for running LXC guest %s", vm->def= ->name); =20 /* now that we know it's reconnected call the hook if present */ diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 939e6fc01c..ad08e29bb3 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -8168,7 +8168,7 @@ qemuDomainObjSaveStatus(virQEMUDriverPtr driver, virQEMUDriverConfigPtr cfg =3D virQEMUDriverGetConfig(driver); =20 if (virDomainObjIsActive(obj)) { - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, obj, driver= ->caps) < 0) + if (virDomainObjSave(obj, driver->xmlopt, driver->caps, cfg->state= Dir) < 0) VIR_WARN("Failed to save status on vm %s", obj->def->name); } =20 @@ -8200,7 +8200,7 @@ qemuDomainSaveConfig(virDomainObjPtr obj) =20 cfg =3D virQEMUDriverGetConfig(driver); =20 - if (virDomainSaveConfig(cfg->configDir, driver->caps, def) < 0) + if (virDomainDefSave(def, driver->xmlopt, driver->caps, cfg->configDir= ) < 0) VIR_WARN("Failed to save config of vm %s", obj->def->name); } =20 @@ -10073,7 +10073,7 @@ qemuDomainSetFakeReboot(virQEMUDriverPtr driver, =20 priv->fakeReboot =3D value; =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->cap= s) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) = < 0) VIR_WARN("Failed to save status on vm %s", vm->def->name); =20 cleanup: diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 594b683b80..b274542c3e 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -1860,7 +1860,7 @@ static int qemuDomainSuspend(virDomainPtr dom) if (qemuProcessStopCPUs(driver, vm, reason, QEMU_ASYNC_JOB_NONE) <= 0) goto endjob; } - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->cap= s) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) = < 0) goto endjob; ret =3D 0; =20 @@ -1918,7 +1918,7 @@ static int qemuDomainResume(virDomainPtr dom) goto endjob; } } - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->cap= s) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) = < 0) goto endjob; ret =3D 0; =20 @@ -2360,8 +2360,8 @@ static int qemuDomainSetMemoryFlags(virDomainPtr dom,= unsigned long newmem, =20 if (persistentDef->mem.cur_balloon > newmem) persistentDef->mem.cur_balloon =3D newmem; - ret =3D virDomainSaveConfig(cfg->configDir, driver->caps, - persistentDef); + ret =3D virDomainDefSave(persistentDef, driver->xmlopt, driver= ->caps, + cfg->configDir); goto endjob; } =20 @@ -2400,8 +2400,8 @@ static int qemuDomainSetMemoryFlags(virDomainPtr dom,= unsigned long newmem, =20 if (persistentDef) { persistentDef->mem.cur_balloon =3D newmem; - ret =3D virDomainSaveConfig(cfg->configDir, driver->caps, - persistentDef); + ret =3D virDomainDefSave(persistentDef, driver->xmlopt, driver= ->caps, + cfg->configDir); goto endjob; } } @@ -2475,7 +2475,7 @@ static int qemuDomainSetMemoryStatsPeriod(virDomainPt= r dom, int period, } =20 def->memballoon->period =3D period; - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) goto endjob; } =20 @@ -2487,7 +2487,7 @@ static int qemuDomainSetMemoryStatsPeriod(virDomainPt= r dom, int period, goto endjob; } persistentDef->memballoon->period =3D period; - ret =3D virDomainSaveConfig(cfg->configDir, driver->caps, persiste= ntDef); + ret =3D virDomainDefSave(persistentDef, driver->xmlopt, driver->ca= ps, cfg->configDir); goto endjob; } =20 @@ -4201,7 +4201,7 @@ processGuestPanicEvent(virQEMUDriverPtr driver, =20 virObjectEventStateQueue(driver->domainEventState, event); =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->cap= s) < 0) { + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) = < 0) { VIR_WARN("Unable to save status on vm %s after state change", vm->def->name); } @@ -4281,7 +4281,7 @@ processDeviceDeletedEvent(virQEMUDriverPtr driver, goto endjob; } =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->cap= s) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) = < 0) VIR_WARN("unable to save domain status after removing device %s", devAlias); =20 @@ -4649,7 +4649,7 @@ processSerialChangedEvent(virQEMUDriverPtr driver, =20 dev.data.chr->state =3D newstate; =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->cap= s) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) = < 0) VIR_WARN("unable to save status of domain %s after updating state = of " "channel %s", vm->def->name, devAlias); =20 @@ -4975,7 +4975,7 @@ qemuDomainSetVcpusMax(virQEMUDriverPtr driver, if (virDomainDefSetVcpusMax(persistentDef, nvcpus, driver->xmlopt) < 0) return -1; =20 - if (virDomainSaveConfig(cfg->configDir, driver->caps, persistentDef) <= 0) + if (virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, cfg-= >configDir) < 0) return -1; =20 return 0; @@ -5104,7 +5104,7 @@ qemuDomainPinVcpuLive(virDomainObjPtr vm, vcpuinfo->cpumask =3D tmpmap; tmpmap =3D NULL; =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->cap= s) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) = < 0) goto cleanup; =20 if (g_snprintf(paramField, VIR_TYPED_PARAM_FIELD_LENGTH, @@ -5187,7 +5187,7 @@ qemuDomainPinVcpuFlags(virDomainPtr dom, vcpuinfo->cpumask =3D pcpumap; pcpumap =3D NULL; =20 - ret =3D virDomainSaveConfig(cfg->configDir, driver->caps, persiste= ntDef); + ret =3D virDomainDefSave(persistentDef, driver->xmlopt, driver->ca= ps, cfg->configDir); goto endjob; } =20 @@ -5319,7 +5319,7 @@ qemuDomainPinEmulator(virDomainPtr dom, if (!(def->cputune.emulatorpin =3D virBitmapNewCopy(pcpumap))) goto endjob; =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) goto endjob; =20 str =3D virBitmapFormat(pcpumap); @@ -5339,7 +5339,7 @@ qemuDomainPinEmulator(virDomainPtr dom, if (!(persistentDef->cputune.emulatorpin =3D virBitmapNewCopy(pcpu= map))) goto endjob; =20 - ret =3D virDomainSaveConfig(cfg->configDir, driver->caps, persiste= ntDef); + ret =3D virDomainDefSave(persistentDef, driver->xmlopt, driver->ca= ps, cfg->configDir); goto endjob; } =20 @@ -5799,7 +5799,7 @@ qemuDomainPinIOThread(virDomainPtr dom, if (virProcessSetAffinity(iothrid->thread_id, pcpumap) < 0) goto endjob; =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) goto endjob; =20 if (g_snprintf(paramField, VIR_TYPED_PARAM_FIELD_LENGTH, @@ -5832,7 +5832,7 @@ qemuDomainPinIOThread(virDomainPtr dom, iothrid->cpumask =3D cpumask; iothrid->autofill =3D false; =20 - ret =3D virDomainSaveConfig(cfg->configDir, driver->caps, persiste= ntDef); + ret =3D virDomainDefSave(persistentDef, driver->xmlopt, driver->ca= ps, cfg->configDir); goto endjob; } =20 @@ -6250,7 +6250,7 @@ qemuDomainChgIOThread(virQEMUDriverPtr driver, =20 } =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) goto endjob; } =20 @@ -6282,8 +6282,8 @@ qemuDomainChgIOThread(virQEMUDriverPtr driver, break; } =20 - if (virDomainSaveConfig(cfg->configDir, driver->caps, - persistentDef) < 0) + if (virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, + cfg->configDir) < 0) goto endjob; } =20 @@ -6894,7 +6894,7 @@ qemuDomainSaveImageStartVM(virConnectPtr conn, "%s", _("failed to resume domain")); goto cleanup; } - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) { + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) { VIR_WARN("Failed to save status on vm %s", vm->def->name); goto cleanup; } @@ -7608,8 +7608,8 @@ qemuDomainDefineXMLFlags(virConnectPtr conn, =20 vm->persistent =3D 1; =20 - if (virDomainSaveConfig(cfg->configDir, driver->caps, - vm->newDef ? vm->newDef : vm->def) < 0) { + if (virDomainDefSave(vm->newDef ? vm->newDef : vm->def, + driver->xmlopt, driver->caps, cfg->configDir) < 0= ) { if (oldDef) { /* There is backup so this VM was defined before. * Just restore the backup. */ @@ -8674,13 +8674,13 @@ qemuDomainAttachDeviceLiveAndConfig(virDomainObjPtr= vm, * changed even if we failed to attach the device. For example, * a new controller may be created. */ - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) goto cleanup; } =20 /* Finally, if no error until here, we can save config. */ if (flags & VIR_DOMAIN_AFFECT_CONFIG) { - if (virDomainSaveConfig(cfg->configDir, driver->caps, vmdef) < 0) + if (virDomainDefSave(vmdef, driver->xmlopt, driver->caps, cfg->con= figDir) < 0) goto cleanup; =20 virDomainObjAssignDef(vm, vmdef, false, NULL); @@ -8827,7 +8827,7 @@ static int qemuDomainUpdateDeviceFlags(virDomainPtr d= om, * changed even if we failed to attach the device. For example, * a new controller may be created. */ - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) { + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) { ret =3D -1; goto endjob; } @@ -8835,7 +8835,7 @@ static int qemuDomainUpdateDeviceFlags(virDomainPtr d= om, =20 /* Finally, if no error until here, we can save config. */ if (flags & VIR_DOMAIN_AFFECT_CONFIG) { - ret =3D virDomainSaveConfig(cfg->configDir, driver->caps, vmdef); + ret =3D virDomainDefSave(vmdef, driver->xmlopt, driver->caps, cfg-= >configDir); if (!ret) { virDomainObjAssignDef(vm, vmdef, false, NULL); vmdef =3D NULL; @@ -8925,13 +8925,13 @@ qemuDomainDetachDeviceLiveAndConfig(virQEMUDriverPt= r driver, * changed even if we failed to attach the device. For example, * a new controller may be created. */ - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, caps) <= 0) + if (virDomainObjSave(vm, driver->xmlopt, caps, cfg->stateDir) < 0) goto cleanup; } =20 /* Finally, if no error until here, we can save config. */ if (flags & VIR_DOMAIN_AFFECT_CONFIG) { - if (virDomainSaveConfig(cfg->configDir, caps, vmdef) < 0) + if (virDomainDefSave(vmdef, driver->xmlopt, caps, cfg->configDir) = < 0) goto cleanup; =20 virDomainObjAssignDef(vm, vmdef, false, NULL); @@ -9009,7 +9009,7 @@ qemuDomainDetachDeviceAliasLiveAndConfig(virQEMUDrive= rPtr driver, } =20 if (vmdef) { - if (virDomainSaveConfig(cfg->configDir, caps, vmdef) < 0) + if (virDomainDefSave(vmdef, driver->xmlopt, caps, cfg->configDir) = < 0) goto cleanup; virDomainObjAssignDef(vm, vmdef, false, NULL); vmdef =3D NULL; @@ -9591,7 +9591,7 @@ qemuDomainSetBlkioParameters(virDomainPtr dom, } } =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) goto endjob; } if (ret < 0) @@ -9626,7 +9626,7 @@ qemuDomainSetBlkioParameters(virDomainPtr dom, } } =20 - if (virDomainSaveConfig(cfg->configDir, driver->caps, persistentDe= f) < 0) + if (virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, = cfg->configDir) < 0) ret =3D -1; } =20 @@ -9856,11 +9856,11 @@ qemuDomainSetMemoryParameters(virDomainPtr dom, #undef VIR_SET_MEM_PARAMETER =20 if (def && - virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->cap= s) < 0) + virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) = < 0) goto endjob; =20 if (persistentDef && - virDomainSaveConfig(cfg->configDir, driver->caps, persistentDef) <= 0) + virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, cfg-= >configDir) < 0) goto endjob; /* QEMU and LXC implementations are identical */ =20 @@ -10123,7 +10123,7 @@ qemuDomainSetNumaParameters(virDomainPtr dom, -1, mode, nodeset) < 0) goto endjob; =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) goto endjob; } =20 @@ -10134,7 +10134,7 @@ qemuDomainSetNumaParameters(virDomainPtr dom, -1, mode, nodeset) < 0) goto endjob; =20 - if (virDomainSaveConfig(cfg->configDir, driver->caps, persistentDe= f) < 0) + if (virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, = cfg->configDir) < 0) goto endjob; } =20 @@ -10316,7 +10316,7 @@ qemuDomainSetPerfEvents(virDomainPtr dom, VIR_TRISTATE_BOOL_YES : VIR_TRISTATE_BOOL_NO; } =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) goto endjob; } =20 @@ -10330,7 +10330,7 @@ qemuDomainSetPerfEvents(virDomainPtr dom, VIR_TRISTATE_BOOL_YES : VIR_TRISTATE_BOOL_NO; } =20 - if (virDomainSaveConfig(cfg->configDir, driver->caps, persistentDe= f) < 0) + if (virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, = cfg->configDir) < 0) goto endjob; } =20 @@ -10792,7 +10792,7 @@ qemuDomainSetSchedulerParametersFlags(virDomainPtr = dom, } } =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->cap= s) < 0) + if (virDomainObjSave(vm, driver->xmlopt, caps, cfg->stateDir) < 0) goto endjob; =20 if (eventNparams) { @@ -10802,7 +10802,8 @@ qemuDomainSetSchedulerParametersFlags(virDomainPtr = dom, } =20 if (persistentDef) { - rc =3D virDomainSaveConfig(cfg->configDir, driver->caps, persisten= tDefCopy); + rc =3D virDomainDefSave(persistentDefCopy, driver->xmlopt, caps, + cfg->configDir); if (rc < 0) goto endjob; =20 @@ -11640,7 +11641,7 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom, goto endjob; } =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) goto endjob; } =20 @@ -11665,7 +11666,7 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom, } } =20 - if (virDomainSaveConfig(cfg->configDir, driver->caps, persistentDe= f) < 0) + if (virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, = cfg->configDir) < 0) goto endjob; } =20 @@ -14626,7 +14627,7 @@ qemuDomainSnapshotCreateInactiveExternal(virQEMUDri= verPtr driver, defdisk->src =3D g_steal_pointer(&newsrc); } =20 - if (virDomainSaveConfig(cfg->configDir, driver->caps, vm->def) < 0) + if (virDomainDefSave(vm->def, driver->xmlopt, driver->caps, cfg->confi= gDir) < 0) goto cleanup; =20 ret =3D 0; @@ -15563,9 +15564,9 @@ qemuDomainSnapshotCreateDiskActive(virQEMUDriverPtr= driver, if (rc < 0) goto cleanup; =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->cap= s) < 0 || - (vm->newDef && virDomainSaveConfig(cfg->configDir, driver->caps, - vm->newDef) < 0)) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) = < 0 || + (vm->newDef && virDomainDefSave(vm->newDef, driver->xmlopt, driver= ->caps, + cfg->configDir) < 0)) goto cleanup; =20 ret =3D 0; @@ -16861,8 +16862,8 @@ qemuDomainRevertToSnapshot(virDomainSnapshotPtr sna= pshot, } } if (ret =3D=3D 0 && defined && vm->persistent && - !(ret =3D virDomainSaveConfig(cfg->configDir, driver->caps, - vm->newDef ? vm->newDef : vm->def))) { + !(ret =3D virDomainDefSave(vm->newDef ? vm->newDef : vm->def, + driver->xmlopt, driver->caps, cfg->config= Dir))) { detail =3D VIR_DOMAIN_EVENT_DEFINED_FROM_SNAPSHOT; virObjectEventStateQueue(driver->domainEventState, virDomainEventLifecycleNewFromObj(vm, @@ -17667,7 +17668,7 @@ qemuDomainBlockJobAbort(virDomainPtr dom, job->state =3D QEMU_BLOCKJOB_STATE_ABORTING; } =20 - ignore_value(virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, dr= iver->caps)); + ignore_value(virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->s= tateDir)); =20 if (!async) { qemuBlockJobUpdate(vm, job, QEMU_ASYNC_JOB_NONE); @@ -19245,8 +19246,7 @@ qemuDomainSetBlockIoTune(virDomainPtr dom, if (virDomainDiskSetBlockIOTune(disk, &info) < 0) goto endjob; =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, - vm, driver->caps) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) goto endjob; =20 if (eventNparams) { @@ -19271,8 +19271,8 @@ qemuDomainSetBlockIoTune(virDomainPtr dom, if (virDomainDiskSetBlockIOTune(conf_disk, &info) < 0) goto endjob; =20 - if (virDomainSaveConfig(cfg->configDir, driver->caps, - persistentDef) < 0) + if (virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, + cfg->configDir) < 0) goto endjob; } =20 @@ -21873,7 +21873,7 @@ qemuDomainRenameCallback(virDomainObjPtr vm, vm->def->name =3D new_dom_name; new_dom_name =3D NULL; =20 - if (virDomainSaveConfig(cfg->configDir, driver->caps, vm->def) < 0) + if (virDomainDefSave(vm->def, driver->xmlopt, driver->caps, cfg->confi= gDir) < 0) goto rollback; =20 if (virFileExists(old_dom_cfg_file) && @@ -22397,16 +22397,15 @@ qemuDomainSetLifecycleAction(virDomainPtr dom, =20 qemuDomainModifyLifecycleAction(def, type, action); =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, - vm, driver->caps) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) goto endjob; } =20 if (persistentDef) { qemuDomainModifyLifecycleAction(persistentDef, type, action); =20 - if (virDomainSaveConfig(cfg->configDir, driver->caps, - persistentDef) < 0) + if (virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, + cfg->configDir) < 0) goto endjob; } =20 @@ -22701,7 +22700,7 @@ qemuDomainAgentSetResponseTimeout(virDomainPtr dom, QEMU_DOMAIN_PRIVATE(vm)->agentTimeout =3D timeout; =20 if (virDomainObjIsActive(vm) && - virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->cap= s) < 0) + virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) = < 0) goto cleanup; =20 ret =3D 0; diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index d4eacaf099..da32a845e1 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -5980,7 +5980,7 @@ qemuDomainHotplugDelVcpu(virQEMUDriverPtr driver, =20 qemuDomainVcpuPersistOrder(vm->def); =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->cap= s) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) = < 0) goto cleanup; =20 ret =3D 0; @@ -6055,7 +6055,7 @@ qemuDomainHotplugAddVcpu(virQEMUDriverPtr driver, =20 qemuDomainVcpuPersistOrder(vm->def); =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->cap= s) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) = < 0) goto cleanup; =20 ret =3D 0; @@ -6313,7 +6313,7 @@ qemuDomainSetVcpusInternal(virQEMUDriverPtr driver, if (persistentDef) { qemuDomainSetVcpusConfig(persistentDef, nvcpus, hotpluggable); =20 - if (virDomainSaveConfig(cfg->configDir, driver->caps, persistentDe= f) < 0) + if (virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, = cfg->configDir) < 0) goto cleanup; } =20 @@ -6513,7 +6513,7 @@ qemuDomainSetVcpuInternal(virQEMUDriverPtr driver, if (persistentDef) { qemuDomainSetVcpuConfig(persistentDef, map, state); =20 - if (virDomainSaveConfig(cfg->configDir, driver->caps, persistentDe= f) < 0) + if (virDomainDefSave(persistentDef, driver->xmlopt, driver->caps, = cfg->configDir) < 0) goto cleanup; } =20 diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index dabdda2715..e9470cc62c 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -1008,7 +1008,7 @@ qemuMigrationSrcNBDStorageCopy(virQEMUDriverPtr drive= r, tlsAlias, flags) < 0) return -1; =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) { + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) { VIR_WARN("Failed to save status on vm %s", vm->def->name); return -1; } @@ -2991,7 +2991,7 @@ qemuMigrationSrcConfirmPhase(virQEMUDriverPtr driver, qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT, priv->job.migParams, priv->job.apiFlags); =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) VIR_WARN("Failed to save status on vm %s", vm->def->name); } =20 @@ -4842,7 +4842,7 @@ qemuMigrationDstPersist(virQEMUDriverPtr driver, priv->qemuCaps))) goto error; =20 - if (virDomainSaveConfig(cfg->configDir, driver->caps, vmdef) < 0 && + if (virDomainDefSave(vmdef, driver->xmlopt, driver->caps, cfg->configD= ir) < 0 && !ignoreSaveError) goto error; =20 @@ -5095,7 +5095,7 @@ qemuMigrationDstFinish(virQEMUDriverPtr driver, } =20 if (virDomainObjIsActive(vm) && - virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->cap= s) < 0) + virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) = < 0) VIR_WARN("Failed to save status on vm %s", vm->def->name); =20 /* Guest is successfully running, so cancel previous auto destroy */ diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 480fcd075d..79ac5f3d95 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -411,7 +411,7 @@ qemuProcessHandleReset(qemuMonitorPtr mon G_GNUC_UNUSED, if (priv->agent) qemuAgentNotifyEvent(priv->agent, QEMU_AGENT_EVENT_RESET); =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->cap= s) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) = < 0) VIR_WARN("Failed to save status on vm %s", vm->def->name); =20 if (vm->def->onReboot =3D=3D VIR_DOMAIN_LIFECYCLE_ACTION_DESTROY || @@ -493,7 +493,7 @@ qemuProcessFakeReboot(void *opaque) goto endjob; } =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->cap= s) < 0) { + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) = < 0) { VIR_WARN("Unable to save status on vm %s after state change", vm->def->name); } @@ -614,7 +614,7 @@ qemuProcessHandleShutdown(qemuMonitorPtr mon G_GNUC_UNU= SED, VIR_DOMAIN_EVENT_SHUTDOWN, detail); =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->cap= s) < 0) { + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) = < 0) { VIR_WARN("Unable to save status on vm %s after state change", vm->def->name); } @@ -680,7 +680,7 @@ qemuProcessHandleStop(qemuMonitorPtr mon G_GNUC_UNUSED, VIR_WARN("Unable to release lease on %s", vm->def->name); VIR_DEBUG("Preserving lock state '%s'", NULLSTR(priv->lockState)); =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) { + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) { VIR_WARN("Unable to save status on vm %s after state change", vm->def->name); } @@ -726,7 +726,7 @@ qemuProcessHandleResume(qemuMonitorPtr mon G_GNUC_UNUSE= D, VIR_DOMAIN_EVENT_RESUMED, eventDetail); =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) { + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) { VIR_WARN("Unable to save status on vm %s after state change", vm->def->name); } @@ -769,7 +769,7 @@ qemuProcessHandleRTCChange(qemuMonitorPtr mon G_GNUC_UN= USED, offset +=3D vm->def->clock.data.variable.adjustment0; vm->def->clock.data.variable.adjustment =3D offset; =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) VIR_WARN("unable to save domain status with RTC change"); } =20 @@ -812,7 +812,7 @@ qemuProcessHandleWatchdog(qemuMonitorPtr mon G_GNUC_UNU= SED, VIR_WARN("Unable to release lease on %s", vm->def->name); VIR_DEBUG("Preserving lock state '%s'", NULLSTR(priv->lockState)); =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) { + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) { VIR_WARN("Unable to save status on vm %s after watchdog event", vm->def->name); } @@ -904,7 +904,7 @@ qemuProcessHandleIOError(qemuMonitorPtr mon G_GNUC_UNUS= ED, VIR_WARN("Unable to release lease on %s", vm->def->name); VIR_DEBUG("Preserving lock state '%s'", NULLSTR(priv->lockState)); =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) VIR_WARN("Unable to save status on vm %s after IO error", vm->= def->name); } virObjectUnlock(vm); @@ -1149,7 +1149,7 @@ qemuProcessHandleTrayChange(qemuMonitorPtr mon G_GNUC= _UNUSED, else if (reason =3D=3D VIR_DOMAIN_EVENT_TRAY_CHANGE_CLOSE) disk->tray_status =3D VIR_DOMAIN_DISK_TRAY_CLOSED; =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) { + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) { VIR_WARN("Unable to save status on vm %s after tray moved even= t", vm->def->name); } @@ -1189,7 +1189,7 @@ qemuProcessHandlePMWakeup(qemuMonitorPtr mon G_GNUC_U= NUSED, VIR_DOMAIN_EVENT_STARTED, VIR_DOMAIN_EVENT_STARTED= _WAKEUP); =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) { + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) { VIR_WARN("Unable to save status on vm %s after wakeup event", vm->def->name); } @@ -1227,7 +1227,7 @@ qemuProcessHandlePMSuspend(qemuMonitorPtr mon G_GNUC_= UNUSED, VIR_DOMAIN_EVENT_PMSUSPENDED, VIR_DOMAIN_EVENT_PMSUSPENDED_MEMORY); =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) { + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) { VIR_WARN("Unable to save status on vm %s after suspend event", vm->def->name); } @@ -1261,7 +1261,7 @@ qemuProcessHandleBalloonChange(qemuMonitorPtr mon G_G= NUC_UNUSED, vm->def->mem.cur_balloon, actual); vm->def->mem.cur_balloon =3D actual; =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->cap= s) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) = < 0) VIR_WARN("unable to save domain status with balloon change"); =20 virObjectUnlock(vm); @@ -1296,7 +1296,7 @@ qemuProcessHandlePMSuspendDisk(qemuMonitorPtr mon G_G= NUC_UNUSED, VIR_DOMAIN_EVENT_PMSUSPENDED, VIR_DOMAIN_EVENT_PMSUSPENDED_DISK); =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) { + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) { VIR_WARN("Unable to save status on vm %s after suspend event", vm->def->name); } @@ -1669,7 +1669,7 @@ qemuProcessHandleMigrationStatus(qemuMonitorPtr mon G= _GNUC_UNUSED, VIR_DOMAIN_EVENT_SUSPEND= ED, VIR_DOMAIN_EVENT_SUSPEND= ED_POSTCOPY); =20 - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps) < 0) { + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir) < 0) { VIR_WARN("Unable to save status on vm %s after state change", vm->def->name); } @@ -3105,7 +3105,7 @@ qemuProcessUpdateVideoRamSize(virQEMUDriverPtr driver, return -1; =20 cfg =3D virQEMUDriverGetConfig(driver); - ret =3D virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver-= >caps); + ret =3D virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateD= ir); virObjectUnref(cfg); =20 return ret; @@ -6860,7 +6860,7 @@ qemuProcessLaunch(virConnectPtr conn, } =20 VIR_DEBUG("Writing early domain status to disk"); - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->cap= s) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) = < 0) goto cleanup; =20 VIR_DEBUG("Waiting for handshake from child"); @@ -7118,7 +7118,7 @@ qemuProcessFinishStartup(virQEMUDriverPtr driver, } =20 VIR_DEBUG("Writing domain status to disk"); - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->cap= s) < 0) + if (virDomainObjSave(vm, driver->xmlopt, driver->caps, cfg->stateDir) = < 0) goto cleanup; =20 if (qemuProcessStartHook(driver, vm, @@ -8221,7 +8221,7 @@ qemuProcessReconnect(void *opaque) } =20 /* update domain state XML with possibly updated state in virDomainObj= */ - if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, obj, driver->ca= ps) < 0) + if (virDomainObjSave(obj, driver->xmlopt, driver->caps, cfg->stateDir)= < 0) goto error; =20 /* Run an hook to allow admins to do some magic */ --=20 2.23.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list