If a qdev block device is created with an anonymous BlockBackend (i.e.
a node name rather than a BB name was given for the drive property),
qdev used to return an empty string when the property was read. This
patch fixes it to return the node name instead.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
static char *print_drive(void *ptr)
{
- return g_strdup(blk_name(ptr));
+ const char *name;
+
+ name = blk_name(ptr);
+ if (!*name) {
+ BlockDriverState *bs = blk_bs(ptr);
+ if (bs) {
+ name = bdrv_get_node_name(bs);
+ }
+ }
+ return g_strdup(name);
}
static void get_drive(Object *obj, Visitor *v, const char *name, void *opaque,