On 05/09/2016 20:13, Kevin Wolf wrote: > When using a node name, create a temporary BlockBackend that is used to > run the qemu-io command. > > Signed-off-by: Kevin Wolf <kw...@redhat.com> > Reviewed-by: Eric Blake <ebl...@redhat.com> > --- > hmp.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/hmp.c b/hmp.c > index a7dfe6f..ad33b44 100644 > --- a/hmp.c > +++ b/hmp.c > @@ -1923,11 +1923,22 @@ void hmp_chardev_remove(Monitor *mon, const QDict > *qdict) > void hmp_qemu_io(Monitor *mon, const QDict *qdict) > { > BlockBackend *blk; > + BlockBackend *local_blk = NULL; > const char* device = qdict_get_str(qdict, "device"); > const char* command = qdict_get_str(qdict, "command"); > Error *err = NULL; > > blk = blk_by_name(device); > + if (!blk) { > + BlockDriverState *bs = bdrv_lookup_bs(NULL, device, &err); > + if (bs) { > + blk = local_blk = blk_new(); > + blk_insert_bs(blk, bs); > + } else { > + goto fail; > + } > + } > + > if (blk) {
Coverity notes that this "if" is now always taken. Thanks, Paolo > AioContext *aio_context = blk_get_aio_context(blk); > aio_context_acquire(aio_context); > @@ -1940,6 +1951,8 @@ void hmp_qemu_io(Monitor *mon, const QDict *qdict) > "Device '%s' not found", device); > } > > +fail: > + blk_unref(local_blk); > hmp_handle_error(mon, &err); > } > >