From nobody Thu May 2 17:12:00 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1507118794172816.167435752424; Wed, 4 Oct 2017 05:06:34 -0700 (PDT) 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 mx1.redhat.com (Postfix) with ESMTPS id 7B885641CD; Wed, 4 Oct 2017 12:06:32 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3355360472; Wed, 4 Oct 2017 12:06:32 +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 080803FC74; Wed, 4 Oct 2017 12:06:31 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v94Bh8Cr008553 for ; Wed, 4 Oct 2017 07:43:08 -0400 Received: by smtp.corp.redhat.com (Postfix) id 637E760F89; Wed, 4 Oct 2017 11:43:08 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id B5A7760F81; Wed, 4 Oct 2017 11:43:07 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 7B885641CD Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: Peter Krempa To: libvir-list@redhat.com Date: Wed, 4 Oct 2017 13:42:50 +0200 Message-Id: In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com Cc: Peter Krempa Subject: [libvirt] [PATCH 1/7] qemu: process: document parameters for startup preparing functions 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: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Wed, 04 Oct 2017 12:06:33 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Document mainly what flag values are passed in. Reviewed-by: John Ferlan --- src/qemu/qemu_process.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index bde3ba462..7f0ef2664 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -5276,7 +5276,11 @@ qemuProcessPrepareDomainNUMAPlacement(virDomainObjPt= r vm, /** - * qemuProcessPrepareDomain + * qemuProcessPrepareDomain: + * @conn: connection object (for looking up storage volumes) + * @driver: qemu driver + * @vm: domain object + * @flags: qemuProcessStartFlags * * This function groups all code that modifies only live XML of a domain w= hich * is about to start and it's the only place to do those modifications. @@ -5404,7 +5408,10 @@ qemuProcessPrepareDomain(virConnectPtr conn, /** - * qemuProcessPrepareHost + * qemuProcessPrepareHost: + * @driver: qemu driver + * @vm: domain object + * @incoming: true if we are preparing an incomming migration * * This function groups all code that modifies host system (which also may * update live XML) to prepare environment for a domain which is about to = start --=20 2.14.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Thu May 2 17:12:00 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1507118255975390.5272534197303; Wed, 4 Oct 2017 04:57:35 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 9ECDAC059B79; Wed, 4 Oct 2017 11:57:34 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 5EB635D9CB; Wed, 4 Oct 2017 11:57:34 +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 2307B410B5; Wed, 4 Oct 2017 11:57:33 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v94BhA7p008566 for ; Wed, 4 Oct 2017 07:43:10 -0400 Received: by smtp.corp.redhat.com (Postfix) id D849360F85; Wed, 4 Oct 2017 11:43:10 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id 36E1460F81; Wed, 4 Oct 2017 11:43:08 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 9ECDAC059B79 Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: Peter Krempa To: libvir-list@redhat.com Date: Wed, 4 Oct 2017 13:42:51 +0200 Message-Id: <66040f2d58de0c476053ada91f46acdca4a9af39.1507117236.git.pkrempa@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com Cc: Peter Krempa Subject: [libvirt] [PATCH 2/7] qemu: migration: Extract flags for starting VM into a variable 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: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Wed, 04 Oct 2017 11:57:35 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" qemuMigrationPrepareAny called multiple of the functions starting the qemu process for incomming migration by adding the flags explicitly. Extract them to a variable so that they can be easily used for other calls or changed in the future. Reviewed-by: John Ferlan --- src/qemu/qemu_migration.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 32904b7b9..078da1dfd 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -2511,6 +2511,7 @@ qemuMigrationPrepareAny(virQEMUDriverPtr driver, bool tunnel =3D !!st; char *xmlout =3D NULL; unsigned int cookieFlags; + unsigned int startFlags; virCapsPtr caps =3D NULL; qemuProcessIncomingDefPtr incoming =3D NULL; bool taint_hook =3D false; @@ -2671,8 +2672,10 @@ qemuMigrationPrepareAny(virQEMUDriverPtr driver, goto stopjob; } + startFlags =3D VIR_QEMU_PROCESS_START_AUTODESTROY; + if (qemuProcessInit(driver, vm, mig->cpu, QEMU_ASYNC_JOB_MIGRATION_IN, - true, VIR_QEMU_PROCESS_START_AUTODESTROY) < 0) + true, startFlags) < 0) goto stopjob; stopProcess =3D true; @@ -2681,8 +2684,7 @@ qemuMigrationPrepareAny(virQEMUDriverPtr driver, dataFD[0]))) goto stopjob; - if (qemuProcessPrepareDomain(dconn, driver, vm, - VIR_QEMU_PROCESS_START_AUTODESTROY) < 0) + if (qemuProcessPrepareDomain(dconn, driver, vm, startFlags) < 0) goto stopjob; if (qemuProcessPrepareHost(driver, vm, !!incoming) < 0) @@ -2691,7 +2693,7 @@ qemuMigrationPrepareAny(virQEMUDriverPtr driver, rv =3D qemuProcessLaunch(dconn, driver, vm, QEMU_ASYNC_JOB_MIGRATION_I= N, incoming, NULL, VIR_NETDEV_VPORT_PROFILE_OP_MIGRATE_IN_START, - VIR_QEMU_PROCESS_START_AUTODESTROY); + startFlags); if (rv < 0) { if (rv =3D=3D -2) relabel =3D true; --=20 2.14.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Thu May 2 17:12:00 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1507118815596376.9611897673732; Wed, 4 Oct 2017 05:06:55 -0700 (PDT) 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 mx1.redhat.com (Postfix) with ESMTPS id 8DE52C04B92C; Wed, 4 Oct 2017 12:06:54 +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 6466660472; Wed, 4 Oct 2017 12:06:54 +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 0C54518355C3; Wed, 4 Oct 2017 12:06:54 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v94BhE5A008579 for ; Wed, 4 Oct 2017 07:43:14 -0400 Received: by smtp.corp.redhat.com (Postfix) id 50049610AF; Wed, 4 Oct 2017 11:43:14 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id A21E060F89; Wed, 4 Oct 2017 11:43:11 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 8DE52C04B92C Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: Peter Krempa To: libvir-list@redhat.com Date: Wed, 4 Oct 2017 13:42:52 +0200 Message-Id: <9ba169a7c22ddc5dc742cf82194821a85c4985ab.1507117236.git.pkrempa@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com Cc: Peter Krempa Subject: [libvirt] [PATCH 3/7] qemu: process: Pass flags to qemuProcessPrepareHost 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: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Wed, 04 Oct 2017 12:06:55 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Pass flags to the function rather than just whether we have incoming migration. This also enforces correct startup policy for USB devices when reverting from a snapshot. Reviewed-by: John Ferlan --- src/qemu/qemu_migration.c | 2 +- src/qemu/qemu_process.c | 8 ++++---- src/qemu/qemu_process.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 078da1dfd..dd60071bf 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -2687,7 +2687,7 @@ qemuMigrationPrepareAny(virQEMUDriverPtr driver, if (qemuProcessPrepareDomain(dconn, driver, vm, startFlags) < 0) goto stopjob; - if (qemuProcessPrepareHost(driver, vm, !!incoming) < 0) + if (qemuProcessPrepareHost(driver, vm, startFlags) < 0) goto stopjob; rv =3D qemuProcessLaunch(dconn, driver, vm, QEMU_ASYNC_JOB_MIGRATION_I= N, diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 7f0ef2664..dfaacbcb9 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -5411,7 +5411,7 @@ qemuProcessPrepareDomain(virConnectPtr conn, * qemuProcessPrepareHost: * @driver: qemu driver * @vm: domain object - * @incoming: true if we are preparing an incomming migration + * @flags: qemuProcessStartFlags * * This function groups all code that modifies host system (which also may * update live XML) to prepare environment for a domain which is about to = start @@ -5422,7 +5422,7 @@ qemuProcessPrepareDomain(virConnectPtr conn, int qemuProcessPrepareHost(virQEMUDriverPtr driver, virDomainObjPtr vm, - bool incoming) + unsigned int flags) { int ret =3D -1; unsigned int hostdev_flags =3D 0; @@ -5444,7 +5444,7 @@ qemuProcessPrepareHost(virQEMUDriverPtr driver, VIR_DEBUG("Preparing host devices"); if (!cfg->relaxedACS) hostdev_flags |=3D VIR_HOSTDEV_STRICT_ACS_CHECK; - if (!incoming) + if (flags & VIR_QEMU_PROCESS_START_NEW) hostdev_flags |=3D VIR_HOSTDEV_COLD_BOOT; if (qemuHostdevPrepareDomainDevices(driver, vm->def, priv->qemuCaps, hostdev_flags) < 0) @@ -5960,7 +5960,7 @@ qemuProcessStart(virConnectPtr conn, if (qemuProcessPrepareDomain(conn, driver, vm, flags) < 0) goto stop; - if (qemuProcessPrepareHost(driver, vm, !!incoming) < 0) + if (qemuProcessPrepareHost(driver, vm, flags) < 0) goto stop; if ((rv =3D qemuProcessLaunch(conn, driver, vm, asyncJob, incoming, diff --git a/src/qemu/qemu_process.h b/src/qemu/qemu_process.h index 667d5c53d..814b86d8a 100644 --- a/src/qemu/qemu_process.h +++ b/src/qemu/qemu_process.h @@ -111,7 +111,7 @@ int qemuProcessPrepareDomain(virConnectPtr conn, int qemuProcessPrepareHost(virQEMUDriverPtr driver, virDomainObjPtr vm, - bool incoming); + unsigned int flags); int qemuProcessLaunch(virConnectPtr conn, virQEMUDriverPtr driver, --=20 2.14.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Thu May 2 17:12:00 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1507118281403805.8703375931461; Wed, 4 Oct 2017 04:58:01 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 46AC2267D5; Wed, 4 Oct 2017 11:58:00 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id D65F560603; Wed, 4 Oct 2017 11:57:59 +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 9EEFC410B4; Wed, 4 Oct 2017 11:57:59 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v94BhFH4008585 for ; Wed, 4 Oct 2017 07:43:15 -0400 Received: by smtp.corp.redhat.com (Postfix) id 491A760F81; Wed, 4 Oct 2017 11:43:15 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9CB69610AF; Wed, 4 Oct 2017 11:43:14 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 46AC2267D5 Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: Peter Krempa To: libvir-list@redhat.com Date: Wed, 4 Oct 2017 13:42:53 +0200 Message-Id: In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com Cc: Peter Krempa Subject: [libvirt] [PATCH 4/7] qemu: domain: Document and export qemuDomainCheckDiskStartupPolicy 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: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Wed, 04 Oct 2017 11:58:00 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Reviewed-by: John Ferlan --- src/qemu/qemu_domain.c | 18 +++++++++++++++++- src/qemu/qemu_domain.h | 5 +++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index b202d02f9..8aa082618 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5625,7 +5625,23 @@ qemuDomainCheckRemoveOptionalDisk(virQEMUDriverPtr d= river, qemuDomainEventQueue(driver, event); } -static int + +/** + * qemuDomainCheckDiskStartupPolicy: + * @driver: qemu driver object + * @vm: domain object + * @disk: index of disk to check + * @cold_boot: true if a new VM is being started + * + * This function should be called when the source storage for a disk devic= e is + * missing. The function checks whether the startup policy for the disk al= lows + * removal of the source (or disk) according to the state of the VM. + * + * The function returns 0 if the source or disk was dropped and -1 if the = state + * of the VM does not allow this. This function does not report errors, but + * clears any reported error if 0 is returned. + */ +int qemuDomainCheckDiskStartupPolicy(virQEMUDriverPtr driver, virDomainObjPtr vm, size_t diskIndex, diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 1a47396ab..b3db50c2f 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -639,6 +639,11 @@ void qemuDomainSetFakeReboot(virQEMUDriverPtr driver, bool qemuDomainJobAllowed(qemuDomainObjPrivatePtr priv, qemuDomainJob job); +int qemuDomainCheckDiskStartupPolicy(virQEMUDriverPtr driver, + virDomainObjPtr vm, + size_t diskIndex, + bool cold_boot); + int qemuDomainCheckDiskPresence(virConnectPtr conn, virQEMUDriverPtr driver, virDomainObjPtr vm, --=20 2.14.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Thu May 2 17:12:00 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1507119008547451.55508861313615; Wed, 4 Oct 2017 05:10:08 -0700 (PDT) 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 mx1.redhat.com (Postfix) with ESMTPS id 2A4C52CE904; Wed, 4 Oct 2017 12:10:07 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 02DB96017C; Wed, 4 Oct 2017 12:10:07 +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 BA81A62CEB; Wed, 4 Oct 2017 12:10:06 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v94BhGw2008594 for ; Wed, 4 Oct 2017 07:43:16 -0400 Received: by smtp.corp.redhat.com (Postfix) id 420F160F89; Wed, 4 Oct 2017 11:43:16 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id 965C460F85; Wed, 4 Oct 2017 11:43:15 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 2A4C52CE904 Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: Peter Krempa To: libvir-list@redhat.com Date: Wed, 4 Oct 2017 13:42:54 +0200 Message-Id: <48ce993df1f7e18a999680cda90db159c1d7b477.1507117236.git.pkrempa@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com Cc: Peter Krempa Subject: [libvirt] [PATCH 5/7] qemu: process: Move 'volume' translation to domain prepare stage 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: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Wed, 04 Oct 2017 12:10:07 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Introduce a new function to prepare domain disks which will also do the volume source to actual disk source translation. --- src/qemu/qemu_domain.c | 10 +--------- src/qemu/qemu_domain.h | 3 +-- src/qemu/qemu_process.c | 36 ++++++++++++++++++++++++++++++++---- 3 files changed, 34 insertions(+), 15 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 8aa082618..bf2ce29bf 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5682,8 +5682,7 @@ qemuDomainCheckDiskStartupPolicy(virQEMUDriverPtr dri= ver, int -qemuDomainCheckDiskPresence(virConnectPtr conn, - virQEMUDriverPtr driver, +qemuDomainCheckDiskPresence(virQEMUDriverPtr driver, virDomainObjPtr vm, unsigned int flags) { @@ -5697,13 +5696,6 @@ qemuDomainCheckDiskPresence(virConnectPtr conn, virDomainDiskDefPtr disk =3D vm->def->disks[idx]; virStorageFileFormat format =3D virDomainDiskGetFormat(disk); - if (virStorageTranslateDiskSourcePool(conn, vm->def->disks[idx]) <= 0) { - if (pretend || - qemuDomainCheckDiskStartupPolicy(driver, vm, idx, cold_boo= t) < 0) - return -1; - continue; - } - if (pretend) continue; diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index b3db50c2f..914f2bec9 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -644,8 +644,7 @@ int qemuDomainCheckDiskStartupPolicy(virQEMUDriverPtr d= river, size_t diskIndex, bool cold_boot); -int qemuDomainCheckDiskPresence(virConnectPtr conn, - virQEMUDriverPtr driver, +int qemuDomainCheckDiskPresence(virQEMUDriverPtr driver, virDomainObjPtr vm, unsigned int flags); diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index dfaacbcb9..ad7c7ee81 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -5275,6 +5275,32 @@ qemuProcessPrepareDomainNUMAPlacement(virDomainObjPt= r vm, } +static int +qemuProcessPrepareDomainStorage(virConnectPtr conn, + virQEMUDriverPtr driver, + virDomainObjPtr vm, + unsigned int flags) +{ + size_t i; + bool cold_boot =3D flags & VIR_QEMU_PROCESS_START_COLD; + + for (i =3D vm->def->ndisks; i > 0; i--) { + size_t idx =3D i - 1; + virDomainDiskDefPtr disk =3D vm->def->disks[idx]; + + if (virStorageTranslateDiskSourcePool(conn, disk) < 0) { + if (qemuDomainCheckDiskStartupPolicy(driver, vm, idx, cold_boo= t) < 0) + return -1; + + /* disk source was dropped */ + continue; + } + } + + return 0; +} + + /** * qemuProcessPrepareDomain: * @conn: connection object (for looking up storage volumes) @@ -5351,10 +5377,12 @@ qemuProcessPrepareDomain(virConnectPtr conn, if (qemuProcessSetupGraphics(driver, vm, flags) < 0) goto cleanup; - /* Drop possibly missing disks from the definition. This function - * also resolves source pool/volume into a path and it needs to - * happen after the def is copied and aliases are set. */ - if (qemuDomainCheckDiskPresence(conn, driver, vm, flags) < 0) + VIR_DEBUG("Setting up storage"); + if (qemuProcessPrepareDomainStorage(conn, driver, vm, flags) < 0) + goto cleanup; + + /* Drop possibly missing disks from the definition. */ + if (qemuDomainCheckDiskPresence(driver, vm, flags) < 0) goto cleanup; VIR_DEBUG("Create domain masterKey"); --=20 2.14.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Thu May 2 17:12:00 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1507118302085811.9571641936808; Wed, 4 Oct 2017 04:58:22 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D7126C04AC4B; Wed, 4 Oct 2017 11:58:20 +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 B433762920; Wed, 4 Oct 2017 11:58:20 +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 7DE4418355C2; Wed, 4 Oct 2017 11:58:20 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v94BhHhU008604 for ; Wed, 4 Oct 2017 07:43:17 -0400 Received: by smtp.corp.redhat.com (Postfix) id 3DD7260F89; Wed, 4 Oct 2017 11:43:17 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8FF0760F81; Wed, 4 Oct 2017 11:43:16 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com D7126C04AC4B Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: Peter Krempa To: libvir-list@redhat.com Date: Wed, 4 Oct 2017 13:42:55 +0200 Message-Id: <62cec968ed8905abe4795ffe15910468ac70f769.1507117236.git.pkrempa@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com Cc: Peter Krempa Subject: [libvirt] [PATCH 6/7] qemu: process: Move TLS setup for storage source to qemuProcessPrepareDomainStorage 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: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Wed, 04 Oct 2017 11:58:21 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Reviewed-by: John Ferlan --- src/qemu/qemu_domain.c | 23 ----------------------- src/qemu/qemu_domain.h | 5 ----- src/qemu/qemu_process.c | 10 +++++----- 3 files changed, 5 insertions(+), 33 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index bf2ce29bf..d3d5dbac6 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -7720,29 +7720,6 @@ qemuDomainPrepareDiskSourceTLS(virStorageSourcePtr s= rc, } -/* qemuProcessPrepareDiskSource: - * @def: live domain definition - * @driver: qemu driver - * - * Returns 0 on success, -1 on failure - */ -int -qemuDomainPrepareDiskSource(virDomainDefPtr def, - virQEMUDriverConfigPtr cfg) -{ - size_t i; - - for (i =3D 0; i < def->ndisks; i++) { - if (qemuDomainPrepareDiskSourceTLS(def->disks[i]->src, - def->disks[i]->info.alias, - cfg) < 0) - return -1; - } - - return 0; -} - - int qemuDomainPrepareShmemChardev(virDomainShmemDefPtr shmem) { diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 914f2bec9..01e8d629e 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -873,11 +873,6 @@ qemuDomainPrepareDiskSourceTLS(virStorageSourcePtr src, virQEMUDriverConfigPtr cfg) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(3); -int -qemuDomainPrepareDiskSource(virDomainDefPtr def, - virQEMUDriverConfigPtr cfg) - ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2); - int qemuDomainPrepareShmemChardev(virDomainShmemDefPtr shmem) ATTRIBUTE_NONNULL(1); diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index ad7c7ee81..84792c2a7 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -5279,6 +5279,7 @@ static int qemuProcessPrepareDomainStorage(virConnectPtr conn, virQEMUDriverPtr driver, virDomainObjPtr vm, + virQEMUDriverConfigPtr cfg, unsigned int flags) { size_t i; @@ -5295,6 +5296,9 @@ qemuProcessPrepareDomainStorage(virConnectPtr conn, /* disk source was dropped */ continue; } + + if (qemuDomainPrepareDiskSourceTLS(disk->src, disk->info.alias, cf= g) < 0) + return -1; } return 0; @@ -5378,7 +5382,7 @@ qemuProcessPrepareDomain(virConnectPtr conn, goto cleanup; VIR_DEBUG("Setting up storage"); - if (qemuProcessPrepareDomainStorage(conn, driver, vm, flags) < 0) + if (qemuProcessPrepareDomainStorage(conn, driver, vm, cfg, flags) < 0) goto cleanup; /* Drop possibly missing disks from the definition. */ @@ -5389,10 +5393,6 @@ qemuProcessPrepareDomain(virConnectPtr conn, if (qemuDomainMasterKeyCreate(vm) < 0) goto cleanup; - VIR_DEBUG("Prepare disk source backends for TLS"); - if (qemuDomainPrepareDiskSource(vm->def, cfg) < 0) - goto cleanup; - VIR_DEBUG("Prepare chardev source backends for TLS"); qemuDomainPrepareChardevSource(vm->def, cfg); --=20 2.14.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Thu May 2 17:12:00 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1507118323221266.0171237183873; Wed, 4 Oct 2017 04:58:43 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 4CDA55F297D; Wed, 4 Oct 2017 11:58:42 +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 2E6B55C542; Wed, 4 Oct 2017 11:58:42 +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 E5D8A18355C3; Wed, 4 Oct 2017 11:58:41 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v94BhIdf008619 for ; Wed, 4 Oct 2017 07:43:18 -0400 Received: by smtp.corp.redhat.com (Postfix) id 36B8060F89; Wed, 4 Oct 2017 11:43:18 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8AABD60F81; Wed, 4 Oct 2017 11:43:17 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 4CDA55F297D Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: Peter Krempa To: libvir-list@redhat.com Date: Wed, 4 Oct 2017 13:42:56 +0200 Message-Id: <7ba914ce36ec1d342037f81ecd544b24790b002b.1507117236.git.pkrempa@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com Cc: Peter Krempa Subject: [libvirt] [PATCH 7/7] qemu: process: move disk presence checking to host setup function 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: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Wed, 04 Oct 2017 11:58:42 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Checking of disk presence accesses storage on the host so it should be done from the host setup function. Move the code to new function called qemuProcessPrepareHostStorage and remove qemuDomainCheckDiskPresence. Reviewed-by: John Ferlan --- src/qemu/qemu_domain.c | 41 ----------------------------------------- src/qemu/qemu_process.c | 46 ++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 42 insertions(+), 45 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index d3d5dbac6..a8c718f62 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5681,47 +5681,6 @@ qemuDomainCheckDiskStartupPolicy(virQEMUDriverPtr dr= iver, } -int -qemuDomainCheckDiskPresence(virQEMUDriverPtr driver, - virDomainObjPtr vm, - unsigned int flags) -{ - size_t i; - bool pretend =3D flags & VIR_QEMU_PROCESS_START_PRETEND; - bool cold_boot =3D flags & VIR_QEMU_PROCESS_START_COLD; - - VIR_DEBUG("Checking for disk presence"); - for (i =3D vm->def->ndisks; i > 0; i--) { - size_t idx =3D i - 1; - virDomainDiskDefPtr disk =3D vm->def->disks[idx]; - virStorageFileFormat format =3D virDomainDiskGetFormat(disk); - - if (pretend) - continue; - - if (virStorageSourceIsEmpty(disk->src)) - continue; - - /* There is no need to check the backing chain for disks - * without backing support, the fact that the file exists is - * more than enough */ - if (virStorageSourceIsLocalStorage(disk->src) && - format > VIR_STORAGE_FILE_NONE && - format < VIR_STORAGE_FILE_BACKING && - virFileExists(virDomainDiskGetSource(disk))) - continue; - - if (qemuDomainDetermineDiskChain(driver, vm, disk, true, true) >= =3D 0) - continue; - - if (qemuDomainCheckDiskStartupPolicy(driver, vm, idx, cold_boot) >= =3D 0) - continue; - - return -1; - } - - return 0; -} /* * The vm must be locked when any of the following cleanup functions is diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 84792c2a7..6bebfe4f4 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -5385,10 +5385,6 @@ qemuProcessPrepareDomain(virConnectPtr conn, if (qemuProcessPrepareDomainStorage(conn, driver, vm, cfg, flags) < 0) goto cleanup; - /* Drop possibly missing disks from the definition. */ - if (qemuDomainCheckDiskPresence(driver, vm, flags) < 0) - goto cleanup; - VIR_DEBUG("Create domain masterKey"); if (qemuDomainMasterKeyCreate(vm) < 0) goto cleanup; @@ -5435,6 +5431,44 @@ qemuProcessPrepareDomain(virConnectPtr conn, } +static int +qemuProcessPrepareHostStorage(virQEMUDriverPtr driver, + virDomainObjPtr vm, + unsigned int flags) +{ + size_t i; + bool cold_boot =3D flags & VIR_QEMU_PROCESS_START_COLD; + + for (i =3D vm->def->ndisks; i > 0; i--) { + size_t idx =3D i - 1; + virDomainDiskDefPtr disk =3D vm->def->disks[idx]; + virStorageFileFormat format =3D virDomainDiskGetFormat(disk); + + if (virStorageSourceIsEmpty(disk->src)) + continue; + + /* There is no need to check the backing chain for disks + * without backing support, the fact that the file exists is + * more than enough */ + if (virStorageSourceIsLocalStorage(disk->src) && + format > VIR_STORAGE_FILE_NONE && + format < VIR_STORAGE_FILE_BACKING && + virFileExists(virDomainDiskGetSource(disk))) + continue; + + if (qemuDomainDetermineDiskChain(driver, vm, disk, true, true) >= =3D 0) + continue; + + if (qemuDomainCheckDiskStartupPolicy(driver, vm, idx, cold_boot) >= =3D 0) + continue; + + return -1; + } + + return 0; +} + + /** * qemuProcessPrepareHost: * @driver: qemu driver @@ -5527,6 +5561,10 @@ qemuProcessPrepareHost(virQEMUDriverPtr driver, if (qemuDomainWriteMasterKeyFile(driver, vm) < 0) goto cleanup; + VIR_DEBUG("Preparing disks (host)"); + if (qemuProcessPrepareHostStorage(driver, vm, flags) < 0) + goto cleanup; + ret =3D 0; cleanup: virObjectUnref(cfg); --=20 2.14.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list