[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/3] blockdev-backup: Don't move target AioConte
From: |
Fam Zheng |
Subject: |
Re: [Qemu-devel] [PATCH 1/3] blockdev-backup: Don't move target AioContext if it's attached |
Date: |
Mon, 23 May 2016 09:09:47 +0800 |
User-agent: |
Mutt/1.6.1 (2016-04-27) |
On Thu, 05/19 13:42, Stefan Hajnoczi wrote:
> On Wed, May 18, 2016 at 04:24:08PM +0800, Fam Zheng wrote:
> > If the BDS is attached, it will want to stay on the AioContext where its
> > BlockBackend is. Don't call bdrv_set_aio_context in this case.
>
> What should the user do when they hit this error?
The user should backup to a dedicate target newly inserted with blockdev-add.
On this error, the user must be using a dataplane enabled virtual disk as
backup target, which is not supported. The mirror job already refuses any
attached device, but for backup we want to support image fleecing and colo, in
which case the target is attached to NBD.
Fam
>
> > Signed-off-by: Fam Zheng <address@hidden>
> > ---
> > blockdev.c | 12 +++++++++++-
> > 1 file changed, 11 insertions(+), 1 deletion(-)
> >
> > diff --git a/blockdev.c b/blockdev.c
> > index 1892b8e..eb15593 100644
> > --- a/blockdev.c
> > +++ b/blockdev.c
> > @@ -3376,8 +3376,18 @@ void do_blockdev_backup(const char *device, const
> > char *target,
> > }
> > target_bs = blk_bs(target_blk);
> >
> > + if (bdrv_get_aio_context(target_bs) != aio_context) {
> > + if (!target_bs->blk) {
> > + /* The target BDS is not attached, we can safely move it to
> > another
> > + * AioContext. */
> > + bdrv_set_aio_context(target_bs, aio_context);
> > + } else {
> > + error_setg(errp, "Target is attached to a different thread
> > from "
> > + "source.");
> > + goto out;
> > + }
> > + }
> > bdrv_ref(target_bs);
> > - bdrv_set_aio_context(target_bs, aio_context);
> > backup_start(bs, target_bs, speed, sync, NULL, on_source_error,
> > on_target_error, block_job_cb, bs, txn, &local_err);
> > if (local_err != NULL) {
> > --
> > 2.8.2
> >
- [Qemu-devel] [PATCH 0/3] Drop virtio-{blk,scsi} op blockers, Fam Zheng, 2016/05/18
- [Qemu-devel] [PATCH 1/3] blockdev-backup: Don't move target AioContext if it's attached, Fam Zheng, 2016/05/18
- [Qemu-devel] [PATCH 2/3] virtio-blk: Remove op blocker for dataplane, Fam Zheng, 2016/05/18
- [Qemu-devel] [PATCH 3/3] virtio-scsi: Remove op blocker for dataplane, Fam Zheng, 2016/05/18
- Re: [Qemu-devel] [PATCH 0/3] Drop virtio-{blk,scsi} op blockers, Michael S. Tsirkin, 2016/05/18
- Re: [Qemu-devel] [PATCH 0/3] Drop virtio-{blk,scsi} op blockers, Stefan Hajnoczi, 2016/05/19
- Re: [Qemu-devel] [PATCH 0/3] Drop virtio-{blk,scsi} op blockers, Stefan Hajnoczi, 2016/05/19