qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]