[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [Qemu-devel] [PATCH v2 3/9] block: don't keep AioContex
From: |
Eric Blake |
Subject: |
Re: [Qemu-block] [Qemu-devel] [PATCH v2 3/9] block: don't keep AioContext acquired after drive_backup_prepare() |
Date: |
Thu, 7 Dec 2017 15:27:50 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 |
On 12/06/2017 08:45 AM, Stefan Hajnoczi wrote:
> Signed-off-by: Stefan Hajnoczi <address@hidden>
> ---
> blockdev.c | 42 ++++++++++++++++++++++++++++++++++--------
> 1 file changed, 34 insertions(+), 8 deletions(-)
>
> @@ -1867,24 +1867,36 @@ static void drive_backup_prepare(BlkActionState
> *common, Error **errp)
> return;
> }
>
> - /* AioContext is released in .clean() */
> - state->aio_context = bdrv_get_aio_context(bs);
> - aio_context_acquire(state->aio_context);
> + aio_context = bdrv_get_aio_context(bs);
> + aio_context_acquire(aio_context);
> +
> + /* Paired with .clean() */
> bdrv_drained_begin(bs);
> +
> state->bs = bs;
>
> state->job = do_drive_backup(backup, common->block_job_txn, &local_err);
> if (local_err) {
> error_propagate(errp, local_err);
> - return;
> + goto out;
> }
> +
> +out:
> + aio_context_release(aio_context);
Looks a bit funny to have a label with a single use that would fall
through to the same location anyways. But it's fine from the future
maintenance point of view, so no need to change it.
Reviewed-by: Eric Blake <address@hidden>
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
signature.asc
Description: OpenPGP digital signature
- [Qemu-block] [PATCH v2 0/9] blockdev: fix QMP 'transaction' with IOThreads, Stefan Hajnoczi, 2017/12/06
- [Qemu-block] [PATCH v2 1/9] blockdev: hold AioContext for bdrv_unref() in external_snapshot_clean(), Stefan Hajnoczi, 2017/12/06
- [Qemu-block] [PATCH v2 2/9] block: don't keep AioContext acquired after external_snapshot_prepare(), Stefan Hajnoczi, 2017/12/06
- [Qemu-block] [PATCH v2 3/9] block: don't keep AioContext acquired after drive_backup_prepare(), Stefan Hajnoczi, 2017/12/06
- Re: [Qemu-block] [Qemu-devel] [PATCH v2 3/9] block: don't keep AioContext acquired after drive_backup_prepare(),
Eric Blake <=
- [Qemu-block] [PATCH v2 4/9] block: don't keep AioContext acquired after blockdev_backup_prepare(), Stefan Hajnoczi, 2017/12/06
- [Qemu-block] [PATCH v2 5/9] block: don't keep AioContext acquired after internal_snapshot_prepare(), Stefan Hajnoczi, 2017/12/06
- [Qemu-block] [PATCH v2 6/9] block: drop unused BlockDirtyBitmapState->aio_context field, Stefan Hajnoczi, 2017/12/06
- [Qemu-block] [PATCH v2 7/9] iothread: add iothread_by_id() API, Stefan Hajnoczi, 2017/12/06
- [Qemu-block] [PATCH v2 8/9] blockdev: add x-blockdev-set-iothread testing command, Stefan Hajnoczi, 2017/12/06