[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH 02/14] block: Cancel jobs first in bdrv_close_al
From: |
Alberto Garcia |
Subject: |
Re: [Qemu-block] [PATCH 02/14] block: Cancel jobs first in bdrv_close_all() |
Date: |
Fri, 06 May 2016 11:17:00 +0200 |
User-agent: |
Notmuch/0.18.2 (http://notmuchmail.org) Emacs/24.4.1 (i586-pc-linux-gnu) |
On Wed 04 May 2016 11:39:13 AM CEST, Kevin Wolf wrote:
> void bdrv_close_all(void)
> {
> - BlockDriverState *bs;
> - AioContext *aio_context;
> + block_job_cancel_sync_all();
>
> /* Drop references from requests still in flight, such as canceled block
> * jobs whose AIO context has not been polled yet */
> @@ -2174,26 +2173,6 @@ void bdrv_close_all(void)
>
> blk_remove_all_bs();
> blockdev_close_all_bdrv_states();
> -
> - /* Cancel all block jobs */
> - while (!QTAILQ_EMPTY(&all_bdrv_states)) {
> - QTAILQ_FOREACH(bs, &all_bdrv_states, bs_list) {
> - aio_context = bdrv_get_aio_context(bs);
> -
> - aio_context_acquire(aio_context);
> - if (bs->job) {
> - block_job_cancel_sync(bs->job);
> - aio_context_release(aio_context);
> - break;
> - }
> - aio_context_release(aio_context);
> - }
> -
> - /* All the remaining BlockDriverStates are referenced directly or
> - * indirectly from block jobs, so there needs to be at least one BDS
> - * directly used by a block job */
> - assert(bs);
> - }
> }
You could add an assert(QTAILQ_EMPTY(&all_bdrv_states)) as it was
suggested some days ago.
The rest looks good.
Reviewed-by: Alberto Garcia <address@hidden>
Berto
- Re: [Qemu-block] [PATCH 08/14] backup: Don't leak BackupBlockJob in error path, (continued)
- [Qemu-block] [PATCH 01/14] block: keep a list of block jobs, Kevin Wolf, 2016/05/04
- [Qemu-block] [PATCH 07/14] mirror: Use BlockBackend for I/O, Kevin Wolf, 2016/05/04
- [Qemu-block] [PATCH 11/14] block: Add blk_co_readv/writev(), Kevin Wolf, 2016/05/04
- [Qemu-block] [PATCH 02/14] block: Cancel jobs first in bdrv_close_all(), Kevin Wolf, 2016/05/04
- [Qemu-block] [PATCH 10/14] backup: Remove bs parameter from backup_do_cow(), Kevin Wolf, 2016/05/04
- [Qemu-block] [PATCH 13/14] commit: Use BlockBackend for I/O, Kevin Wolf, 2016/05/04
- [Qemu-block] [PATCH 12/14] backup: Use BlockBackend for I/O, Kevin Wolf, 2016/05/04
- [Qemu-block] [PATCH 14/14] blockjob: Remove BlockJob.bs, Kevin Wolf, 2016/05/04
- [Qemu-block] [PATCH 09/14] backup: Pack Notifier within BackupBlockJob, Kevin Wolf, 2016/05/04