[libvirt] [PATCH 3/7] qemu: process: Pass flags to qemuProcessPrepareHost

Peter Krempa posted 7 patches 8 years, 4 months ago
[libvirt] [PATCH 3/7] qemu: process: Pass flags to qemuProcessPrepareHost
Posted by Peter Krempa 8 years, 4 months ago
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.
---
 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 = qemuProcessLaunch(dconn, driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN,
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 = -1;
     unsigned int hostdev_flags = 0;
@@ -5444,7 +5444,7 @@ qemuProcessPrepareHost(virQEMUDriverPtr driver,
     VIR_DEBUG("Preparing host devices");
     if (!cfg->relaxedACS)
         hostdev_flags |= VIR_HOSTDEV_STRICT_ACS_CHECK;
-    if (!incoming)
+    if (flags & VIR_QEMU_PROCESS_START_NEW)
         hostdev_flags |= 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 = 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,
-- 
2.14.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 3/7] qemu: process: Pass flags to qemuProcessPrepareHost
Posted by John Ferlan 8 years, 4 months ago

On 10/04/2017 07:42 AM, Peter Krempa wrote:
> 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.
> ---
>  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)

yah! - removing an essentially useless !!incoming since it couldn't be
anything but true...

Reviewed-by: John Ferlan <jferlan@redhat.com>

John

[...]

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 3/7] qemu: process: Pass flags to qemuProcessPrepareHost
Posted by Peter Krempa 8 years, 4 months ago
On Wed, Oct 04, 2017 at 11:59:07 -0400, John Ferlan wrote:
> 
> 
> On 10/04/2017 07:42 AM, Peter Krempa wrote:
> > 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.
> > ---
> >  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)
> 
> yah! - removing an essentially useless !!incoming since it couldn't be
> anything but true...

Well. Now it won't be anything but VIR_QEMU_PROCESS_START_AUTODESTROY
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list