[libvirt] [PATCH v3 02/24] qemu: Introduce qemuBlockJobUpdate

Peter Krempa pkrempa at redhat.com
Wed Jun 10 14:21:36 UTC 2015


On Wed, Jun 10, 2015 at 15:42:36 +0200, Jiri Denemark wrote:
> The wrapper is useful for calling qemuBlockJobEventProcess with the
> event details stored in disk's privateData, which is the most likely
> usage of qemuBlockJobEventProcess.
> 
> Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
> ---
> 
> Notes:
>     ACKed in version 1 and 2
>     
>     Version 3:
>     - better flow in qemuBlockJobUpdate
>     - document qemuBlockJobUpdate
>     
>     Version 2:
>     - no changes
>     
>     ACKed in version 1 and 2
>     
>     Version 3:
>     - better flow in qemuBlockJobUpdate
>     
>     Version 2:
>     - no changes
> 
>  src/libvirt_private.syms |  2 ++
>  src/qemu/qemu_blockjob.c | 47 +++++++++++++++++++++++++++++++++++++++--------
>  src/qemu/qemu_blockjob.h |  3 +++
>  3 files changed, 44 insertions(+), 8 deletions(-)
> 

...

> diff --git a/src/qemu/qemu_blockjob.c b/src/qemu/qemu_blockjob.c
> index 098a43a..eb05cef 100644
> --- a/src/qemu/qemu_blockjob.c
> +++ b/src/qemu/qemu_blockjob.c
> @@ -38,6 +38,37 @@
>  
>  VIR_LOG_INIT("qemu.qemu_blockjob");
>  
> +
> +/**
> + * qemuBlockJobUpdate:
> + * @driver: qemu driver
> + * @vm: domain
> + * @disk: domain disk
> + *
> + * Update disk's mirror state in response to a block job event stored in
> + * blockJobStatus by qemuProcessHandleBlockJob event handler.
> + *
> + * Returns the block job event processed or -1 if there was no pending event.
> + */
> +int
> +qemuBlockJobUpdate(virQEMUDriverPtr driver,
> +                   virDomainObjPtr vm,
> +                   virDomainDiskDefPtr disk)
> +{
> +    qemuDomainDiskPrivatePtr diskPriv = QEMU_DOMAIN_DISK_PRIVATE(disk);
> +    int status = diskPriv->blockJobStatus;
> +
> +    if (status != -1) {
> +        qemuBlockJobEventProcess(driver, vm, disk,
> +                                 diskPriv->blockJobType,
> +                                 diskPriv->blockJobStatus);
> +        diskPriv->blockJobStatus = -1;
> +    }
> +
> +    return status;
> +}

Looks much better!

> +
> +
>  /**
>   * qemuBlockJobEventProcess:
>   * @driver: qemu driver

ACK,

Peter
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20150610/7f6ce3f8/attachment-0001.sig>


More information about the libvir-list mailing list