[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] block/stream: Don't stream unbacked devices
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH] block/stream: Don't stream unbacked devices |
Date: |
Thu, 14 Nov 2013 14:41:22 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Wed, Nov 13, 2013 at 08:37:58PM +0100, Max Reitz wrote:
> If a block device is unbacked, a streaming blockjob should immediately
> finish instead of beginning to try to stream, then noticing the backing
> file does not contain even the first sector (since it does not exist)
> and then finishing normally.
>
> Signed-off-by: Max Reitz <address@hidden>
> ---
> block/stream.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/block/stream.c b/block/stream.c
> index 694fd42..46bec7d 100644
> --- a/block/stream.c
> +++ b/block/stream.c
> @@ -88,6 +88,11 @@ static void coroutine_fn stream_run(void *opaque)
> int n = 0;
> void *buf;
>
> + if (!bs->backing_hd) {
> + block_job_completed(&s->common, 0);
> + return;
> + }
> +
Thanks for raising this, it's a bug that we don't verify that the image
has a backing file.
I'd rather return an error that the user attempted to do something
pointless. It was a mistake on their part and it helps to bring this to
their attention right away.
CCing Eric Blake because strictly speaking, adding a error where we
previously used to return success breaks API compatibility. Any
suggestions (I guess QEMU could just log a warning instead of failing
the command)?
Stefan