[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 04/20] block: Convert bdrv_em_aiocb_info.canc
From: |
Fam Zheng |
Subject: |
Re: [Qemu-devel] [PATCH v4 04/20] block: Convert bdrv_em_aiocb_info.cancel to .cancel_async |
Date: |
Thu, 4 Sep 2014 09:20:59 +0800 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Wed, 09/03 13:28, Paolo Bonzini wrote:
> Il 03/09/2014 13:23, Fam Zheng ha scritto:
> > All the difference is that the old .cancel doesn't call cb, but
> > .cancel_async does.
>
> This requires auditing all callbacks though, doesn't it? Or at least
> adding an
>
> if (ret == -ECANCELED) {
> return;
> }
>
> at the beginning.
You are right, this is an unexpected error code for ide at least.
Fam
>
> Paolo
>
> > Signed-off-by: Fam Zheng <address@hidden>
> > ---
> > block.c | 5 ++++-
> > 1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/block.c b/block.c
> > index 4aa1bd7..b7253af 100644
> > --- a/block.c
> > +++ b/block.c
> > @@ -4679,6 +4679,9 @@ static void bdrv_aio_cancel_em(BlockDriverAIOCB
> > *blockacb)
> > {
> > BlockDriverAIOCBSync *acb =
> > container_of(blockacb, BlockDriverAIOCBSync, common);
> > +
> > + acb->ret = -ECANCELED;
> > + acb->common.cb(acb->common.opaque, acb->ret);
> > qemu_bh_delete(acb->bh);
> > acb->bh = NULL;
> > qemu_aio_release(acb);
> > @@ -4686,7 +4689,7 @@ static void bdrv_aio_cancel_em(BlockDriverAIOCB
> > *blockacb)
> >
> > static const AIOCBInfo bdrv_em_aiocb_info = {
> > .aiocb_size = sizeof(BlockDriverAIOCBSync),
> > - .cancel = bdrv_aio_cancel_em,
> > + .cancel_async = bdrv_aio_cancel_em,
> > };
> >
> > static void bdrv_aio_bh_cb(void *opaque)
> >
>
- [Qemu-devel] [PATCH v4 00/20] block: Asynchronous request cancellation, Fam Zheng, 2014/09/03
- [Qemu-devel] [PATCH v4 01/20] block: Add refcnt in BlockDriverAIOCB, Fam Zheng, 2014/09/03
- [Qemu-devel] [PATCH v4 02/20] block: Add bdrv_aio_cancel_async, Fam Zheng, 2014/09/03
- [Qemu-devel] [PATCH v4 03/20] block: Drop bdrv_em_co_aiocb_info.cancel, Fam Zheng, 2014/09/03
- [Qemu-devel] [PATCH v4 04/20] block: Convert bdrv_em_aiocb_info.cancel to .cancel_async, Fam Zheng, 2014/09/03
- Re: [Qemu-devel] [PATCH v4 04/20] block: Convert bdrv_em_aiocb_info.cancel to .cancel_async, Benoît Canet, 2014/09/04
[Qemu-devel] [PATCH v4 05/20] thread-pool: Convert thread_pool_aiocb_info.cancel to cancel_async, Fam Zheng, 2014/09/03
[Qemu-devel] [PATCH v4 06/20] linux-aio: Convert laio_aiocb_info.cancel to .cancel_async, Fam Zheng, 2014/09/03
[Qemu-devel] [PATCH v4 07/20] dma: Check iov pointer before unmap memory, Fam Zheng, 2014/09/03
[Qemu-devel] [PATCH v4 08/20] dma: Convert dma_aiocb_info.cancel to .cancel_async, Fam Zheng, 2014/09/03