> From: Paolo Bonzini [mailto:pbonz...@redhat.com] > On 20/09/2016 14:31, Pavel Dovgalyuk wrote: > > /* Open the image file */ > > bs->file = bdrv_open_child(NULL, options, "image", > > @@ -40,6 +112,43 @@ static int blkreplay_open(BlockDriverState *bs, QDict > > *options, int > flags, > > goto fail; > > } > > > > + opts = qemu_opts_create(&blkreplay_runtime_opts, NULL, 0, > > &error_abort); > > + qemu_opts_absorb_qdict(opts, options, &local_err); > > + if (local_err) { > > + ret = -EINVAL; > > + goto fail; > > + } > > + > > + /* Prepare options QDict for the overlay file */ > > + qdict_put(snapshot_options, "file.driver", > > + qstring_from_str("file")); > > + qdict_put(snapshot_options, "driver", > > + qstring_from_str("qcow2")); > > + > > + snapshot = qemu_opt_get(opts, "overlay"); > > + if (snapshot) { > > + qdict_put(snapshot_options, "file.filename", > > + qstring_from_str(snapshot)); > > + } else { > > + char tmp_filename[PATH_MAX + 1]; > > + ret = get_tmp_filename(tmp_filename, PATH_MAX + 1); > > + if (ret < 0) { > > + error_setg_errno(errp, -ret, "Could not get temporary > > filename"); > > + goto fail; > > + } > > No, this is unnecessary. The image is unused in this case, so you can > specify the overlay as image=foo.qcow2.
This branch allows user do not bother about overlays at all. Driver will automatically create temporary snapshot. Pavel Dovgalyuk