[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH v2 19/23] qcow2: Add error handling to the l
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [RFC PATCH v2 19/23] qcow2: Add error handling to the l2meta coroutine |
Date: |
Mon, 18 Feb 2013 16:42:55 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Wed, Feb 13, 2013 at 02:22:09PM +0100, Kevin Wolf wrote:
> diff --git a/block/qcow2.c b/block/qcow2.c
> index 57552aa..2819336 100644
> --- a/block/qcow2.c
> +++ b/block/qcow2.c
> @@ -774,11 +774,33 @@ static void coroutine_fn process_l2meta(void *opaque)
> m->sleeping = false;
> }
>
> +again:
> qemu_co_mutex_lock(&s->lock);
>
> ret = qcow2_alloc_cluster_link_l2(bs, m);
> if (ret < 0) {
> - /* FIXME */
> + /*
> + * This is a nasty situation: We have already completed the
> allocation
> + * write request and returned success, so just failing it isn't
> + * possible. We need to make sure to return an error during the next
> + * flush.
> + *
> + * However, we still can't drop the l2meta because we want I/O errors
> + * to be recoverable e.g. after the block device has been grown or
> the
> + * network connection restored. Sleep until the next flush comes and
> + * then retry.
> + */
A failed flush is live migrated by hw/virtio-blk.c but what happens when
we fail during drain?
- Re: [Qemu-devel] [RFC PATCH v2 13/23] qcow2: handle_copied(): Implement non-zero host_offset, (continued)
[Qemu-devel] [RFC PATCH v2 16/23] qcow2: Reading from areas not in L2 tables yet, Kevin Wolf, 2013/02/13
[Qemu-devel] [RFC PATCH v2 18/23] qcow2: Delay the COW, Kevin Wolf, 2013/02/13
[Qemu-devel] [RFC PATCH v2 19/23] qcow2: Add error handling to the l2meta coroutine, Kevin Wolf, 2013/02/13
- Re: [Qemu-devel] [RFC PATCH v2 19/23] qcow2: Add error handling to the l2meta coroutine,
Stefan Hajnoczi <=
[Qemu-devel] [RFC PATCH v2 14/23] qcow2: Use byte granularity in qcow2_alloc_cluster_offset(), Kevin Wolf, 2013/02/13
[Qemu-devel] [RFC PATCH v2 17/23] qcow2: Move COW and L2 update into own coroutine, Kevin Wolf, 2013/02/13
[Qemu-devel] [RFC PATCH v2 22/23] qcow2: Move cluster gathering to a non-looping loop, Kevin Wolf, 2013/02/13
[Qemu-devel] [RFC PATCH v2 21/23] qemu-iotests: Another concurrent multicluster allocation case, Kevin Wolf, 2013/02/13
[Qemu-devel] [RFC PATCH v2 20/23] qcow2: Cancel COW when overwritten, Kevin Wolf, 2013/02/13