δΊ 2013/11/14 3:37, Max Reitz ει: > 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 <mre...@redhat.com> > --- > 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; > + } > + > s->common.len = bdrv_getlength(bs); > if (s->common.len < 0) { > block_job_completed(&s->common, s->common.len); >
Reviewed-by: Wenchao Xia <xiaw...@linux.vnet.ibm.com>