[libvirt] [PATCH 5/7] qemu: process: Move 'volume' translation to domain prepare stage
John Ferlan
jferlan at redhat.com
Wed Oct 4 16:06:28 UTC 2017
On 10/04/2017 07:42 AM, Peter Krempa wrote:
> 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 driver,
>
>
> int
> -qemuDomainCheckDiskPresence(virConnectPtr conn,
> - virQEMUDriverPtr driver,
> +qemuDomainCheckDiskPresence(virQEMUDriverPtr driver,
> virDomainObjPtr vm,
> unsigned int flags)
> {
> @@ -5697,13 +5696,6 @@ qemuDomainCheckDiskPresence(virConnectPtr conn,
> virDomainDiskDefPtr disk = vm->def->disks[idx];
> virStorageFileFormat format = virDomainDiskGetFormat(disk);
>
> - if (virStorageTranslateDiskSourcePool(conn, vm->def->disks[idx]) < 0) {
> - if (pretend ||
> - qemuDomainCheckDiskStartupPolicy(driver, vm, idx, cold_boot) < 0)
> - return -1;
> - continue;
> - }
> -
> if (pretend)
> continue;
So the reality is we don't even have to run through any of the loop if
pretend == true as we're literally doing nothing with it.
I know, moot point since 2 patches later the whole function moves to
being called from PrepareHost which never checked pretend anyway -
although it perhaps could now that PrepareHost takes @flags
>
> 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 driver,
> 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(virDomainObjPtr vm,
> }
>
>
> +static int
> +qemuProcessPrepareDomainStorage(virConnectPtr conn,
> + virQEMUDriverPtr driver,
> + virDomainObjPtr vm,
> + unsigned int flags)
> +{
> + size_t i;
> + bool cold_boot = flags & VIR_QEMU_PROCESS_START_COLD;
> +
> + for (i = vm->def->ndisks; i > 0; i--) {
> + size_t idx = i - 1;
> + virDomainDiskDefPtr disk = vm->def->disks[idx];
> +
> + if (virStorageTranslateDiskSourcePool(conn, disk) < 0) {
> + if (qemuDomainCheckDiskStartupPolicy(driver, vm, idx, cold_boot) < 0)
Missing the "pretend ||" failure option/shortcut from commit 'a2b97a8d'
I would think it would be necessary in this failure path since it's
still eventually going to be called via/through PrepareDomain which
seems to care about pretending... Although make check passes, so who knows.
> + return -1;
> +
> + /* disk source was dropped */
> + continue;
> + }
> + }
> +
> + return 0;
> +}
> +
> Reviewed-by: John Ferlan <jferlan at redhat.com>
More information about the libvir-list
mailing list