[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 03/11] block: never cancel a streaming job witho
From: |
Fam Zheng |
Subject: |
Re: [Qemu-devel] [PATCH 03/11] block: never cancel a streaming job without running stream_complete() |
Date: |
Fri, 15 May 2015 10:23:08 +0800 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Wed, 05/13 16:27, Alberto Garcia wrote:
> We need to call stream_complete() in order to do all the necessary
> clean-ups, even if there's an early failure. At the moment it's only
> useful to make sure that s->backing_file_str is not leaked, but it
> will become more important as we introduce support for streaming to
> any intermediate node.
>
> Signed-off-by: Alberto Garcia <address@hidden>
> Reviewed-by: Max Reitz <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
> ---
> block/stream.c | 11 ++++++-----
> 1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/block/stream.c b/block/stream.c
> index a628901..37bfd8b 100644
> --- a/block/stream.c
> +++ b/block/stream.c
> @@ -114,21 +114,21 @@ static void coroutine_fn stream_run(void *opaque)
> StreamCompleteData *data;
> BlockDriverState *bs = s->common.bs;
> BlockDriverState *base = s->base;
> - int64_t sector_num, end;
> + int64_t sector_num = 0;
> + int64_t end = -1;
> int error = 0;
> int ret = 0;
> int n = 0;
> void *buf;
>
> if (!bs->backing_hd) {
> - block_job_completed(&s->common, 0);
> - return;
> + goto out;
> }
>
> s->common.len = bdrv_getlength(bs);
> if (s->common.len < 0) {
> - block_job_completed(&s->common, s->common.len);
> - return;
> + ret = s->common.len;
> + goto out;
> }
>
> end = s->common.len >> BDRV_SECTOR_BITS;
> @@ -215,6 +215,7 @@ wait:
>
> qemu_vfree(buf);
>
> +out:
> /* Modify backing chain and close BDSes in main loop */
> data = g_malloc(sizeof(*data));
> data->ret = ret;
> --
> 2.1.4
>
>
- [Qemu-devel] [PATCH 05/11] block: Add QMP support for streaming to an intermediate layer, (continued)
- [Qemu-devel] [PATCH 05/11] block: Add QMP support for streaming to an intermediate layer, Alberto Garcia, 2015/05/13
- [Qemu-devel] [PATCH 07/11] qemu-iotests: fix test_stream_partial(), Alberto Garcia, 2015/05/13
- [Qemu-devel] [PATCH 04/11] block: Support streaming to an intermediate layer, Alberto Garcia, 2015/05/13
- [Qemu-devel] [PATCH 06/11] docs: Document how to stream to an intermediate layer, Alberto Garcia, 2015/05/13
- [Qemu-devel] [PATCH 11/11] qemu-iotests: test overlapping block-stream operations, Alberto Garcia, 2015/05/13
- [Qemu-devel] [PATCH 02/11] block: allow block jobs in any arbitrary node, Alberto Garcia, 2015/05/13
- [Qemu-devel] [PATCH 10/11] qemu-iotests: test block-stream operations in parallel, Alberto Garcia, 2015/05/13
- [Qemu-devel] [PATCH 03/11] block: never cancel a streaming job without running stream_complete(), Alberto Garcia, 2015/05/13
- Re: [Qemu-devel] [PATCH 03/11] block: never cancel a streaming job without running stream_complete(),
Fam Zheng <=