[GSoC][PATCH 5/7] qemu_domainjob: added `getDomainXMLOptionPtr` callback function

Erik Skultety eskultet at redhat.com
Wed Aug 12 12:10:26 UTC 2020


On Tue, Aug 04, 2020 at 08:06:47PM +0530, Prathamesh Chavan wrote:
> To remove dependency of funcitons to access the `privateData` of
> qemu-domain, we introduce this callback funciton so that funcitons
> get exactly what they need.
>
> Signed-off-by: Prathamesh Chavan <pc44800 at gmail.com>
> ---
>  src/qemu/qemu_domain.c    | 8 ++++++++
>  src/qemu/qemu_domainjob.c | 4 ++--
>  src/qemu/qemu_domainjob.h | 2 ++
>  3 files changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> index d7a944a886..2e16c8e5fe 100644
> --- a/src/qemu/qemu_domain.c
> +++ b/src/qemu/qemu_domain.c
> @@ -629,12 +629,20 @@ qemuDomainParseJobPrivate(xmlXPathContextPtr ctxt,
>      return 0;
>  }
>
> +static virDomainXMLOptionPtr
> +qemuGetDomainXMLOptionPtr(virDomainObjPtr vm)
> +{
> +    qemuDomainObjPrivatePtr priv = vm->privateData;
> +    return priv->driver->xmlopt;
> +
> +}
>
>  static qemuDomainObjPrivateJobCallbacks qemuPrivateJobCallbacks = {
>      .allocJobPrivate = qemuJobAllocPrivate,
>      .freeJobPrivate = qemuJobFreePrivate,
>      .resetJobPrivate = qemuJobResetPrivate,
>      .saveStatus = qemuDomainSaveStatus,
> +    .getDomainXMLOptionPtr = qemuGetDomainXMLOptionPtr,
>      .formatJob = qemuDomainFormatJobPrivate,
>      .parseJob = qemuDomainParseJobPrivate,
>      .setJobInfoOperation = qemuDomainJobInfoSetOperation,
> diff --git a/src/qemu/qemu_domainjob.c b/src/qemu/qemu_domainjob.c
> index 19c847dffc..3eff45fd17 100644
> --- a/src/qemu/qemu_domainjob.c
> +++ b/src/qemu/qemu_domainjob.c
> @@ -765,7 +765,7 @@ qemuDomainObjPrivateXMLFormatNBDMigration(virBufferPtr buf,
>          if (diskPriv->migrSource &&
>              qemuDomainObjPrivateXMLFormatNBDMigrationSource(&childBuf,
>                                                              diskPriv->migrSource,
> -                                                            priv->driver->xmlopt) < 0)
> +                                                            priv->job.cb->getDomainXMLOptionPtr(vm)) < 0)

NBD migration is very much QEMU specific at the moment, so if you move
qemuDomainObjPrivateXMLFormatNBDMigrationSource and functions alike out of the
qemu_domainjob module which we're planning on using as a base for the
hypervisor-agnostic job handling module, you won't need this patch.

Erik




More information about the libvir-list mailing list