On 10/04/2017 07:59 AM, Peter Krempa wrote:
> Skip purging the backing chain and redetecting it when it was not going
> to change during the time we were not present.
>
> The decision is based on the new flag which records whether there were
> blockjobs running to the status XML.
> ---
> src/qemu/qemu_process.c | 19 ++++++++++++-------
> 1 file changed, 12 insertions(+), 7 deletions(-)
>
> diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
> index bde3ba462..80d204599 100644
> --- a/src/qemu/qemu_process.c
> +++ b/src/qemu/qemu_process.c
> @@ -6892,13 +6892,18 @@ qemuProcessReconnect(void *opaque)
BTW: I'd support a
virDomainDiskDefPtr disk = obj->def->disks[i];
right about here too ;-)
> if (virStorageTranslateDiskSourcePool(conn, obj->def->disks[i]) < 0)
> goto error;
>
> - /* XXX we should be able to restore all data from XML in the future.
> - * This should be the only place that calls qemuDomainDetermineDiskChain
> - * with @report_broken == false to guarantee best-effort domain
> - * reconnect */
> - if (qemuDomainDetermineDiskChain(driver, obj, obj->def->disks[i],
> - true, false) < 0)
> - goto error;
> + /* backing chains need to be refreshed only if they could change */
> + if (!priv->reconnectNoActiveBlockjobs) {
...or from my previous patch suggestion
if (priv->NAME != VIR_TRISTATE_BOOL_NO)
Reviewed-by: John Ferlan <jferlan@redhat.com>
John
I can give an R-B on patch 5 depending on your thoughts there. Maybe I'm
missing something in future attractions...
> + /* This should be the only place that calls
> + * qemuDomainDetermineDiskChain with @report_broken == false
> + * to guarantee best-effort domain reconnect */
> + if (qemuDomainDetermineDiskChain(driver, obj, obj->def->disks[i],
> + true, false) < 0)
> + goto error;
> + } else {
> + VIR_DEBUG("skipping backing chain detection for '%s'",
> + obj->def->disks[i]->dst);
> + }
>
> dev.type = VIR_DOMAIN_DEVICE_DISK;
> dev.data.disk = obj->def->disks[i];
>
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list