[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [Qemu-devel] [PATCH] block: early check for blockers on
From: |
John Snow |
Subject: |
Re: [Qemu-block] [Qemu-devel] [PATCH] block: early check for blockers on drive-mirror |
Date: |
Fri, 9 Feb 2018 18:07:49 -0500 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 |
On 02/07/2018 11:29 AM, Paolo Bonzini wrote:
> Even if an op blocker is present for BLOCK_OP_TYPE_MIRROR_SOURCE,
> it is checked a bit late and the result is that the target is
> created even if drive-mirror subsequently fails. Add an early
> check to avoid this.
>
> Signed-off-by: Paolo Bonzini <address@hidden>
> ---
> blockdev.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/blockdev.c b/blockdev.c
> index 8e977eef11..c7e2e0a00e 100644
> --- a/blockdev.c
> +++ b/blockdev.c
> @@ -3565,6 +3565,11 @@ void qmp_drive_mirror(DriveMirror *arg, Error **errp)
> return;
> }
>
> + /* Early check to avoid creating target */
> + if (bdrv_op_is_blocked(bs, BLOCK_OP_TYPE_MIRROR_SOURCE, errp)) {
> + return;
> + }
> +
> aio_context = bdrv_get_aio_context(bs);
> aio_context_acquire(aio_context);
>
>
What's the implication of the temporarily-extant target node that it
needs to be avoided so strictly?