Am 06.07.2010 14:37, schrieb Markus Armbruster: > Its value is unreliable: a block device used as floppy has type > "floppy" if created with if=floppy, but type "hd" if created with > if=none. > > That's because with if=none, the type is at best a declaration of > intent: the drive can be connected to any guest device. Its type is > really the guest device's business. Reporting it here is wrong. > > Signed-off-by: Markus Armbruster <arm...@redhat.com>
Dan, I'd like to have your Acked-by for this patch before applying it. Can libvirt handle such a change in the monitor output, or does it even use info block? Kevin > --- > block.c | 20 +++----------------- > qemu-monitor.hx | 6 ------ > 2 files changed, 3 insertions(+), 23 deletions(-) > > diff --git a/block.c b/block.c > index 65cf4dc..6d419b9 100644 > --- a/block.c > +++ b/block.c > @@ -1533,9 +1533,8 @@ static void bdrv_print_dict(QObject *obj, void *opaque) > > bs_dict = qobject_to_qdict(obj); > > - monitor_printf(mon, "%s: type=%s removable=%d", > + monitor_printf(mon, "%s: removable=%d", > qdict_get_str(bs_dict, "device"), > - qdict_get_str(bs_dict, "type"), > qdict_get_bool(bs_dict, "removable")); > > if (qdict_get_bool(bs_dict, "removable")) { > @@ -1576,23 +1575,10 @@ void bdrv_info(Monitor *mon, QObject **ret_data) > > QTAILQ_FOREACH(bs, &bdrv_states, list) { > QObject *bs_obj; > - const char *type = "unknown"; > - > - switch(bs->type) { > - case BDRV_TYPE_HD: > - type = "hd"; > - break; > - case BDRV_TYPE_CDROM: > - type = "cdrom"; > - break; > - case BDRV_TYPE_FLOPPY: > - type = "floppy"; > - break; > - } > > - bs_obj = qobject_from_jsonf("{ 'device': %s, 'type': %s, " > + bs_obj = qobject_from_jsonf("{ 'device': %s, " > "'removable': %i, 'locked': %i }", > - bs->device_name, type, bs->removable, > + bs->device_name, bs->removable, > bs->locked); > > if (bs->drv) { > diff --git a/qemu-monitor.hx b/qemu-monitor.hx > index 9f62b94..6ba8abc 100644 > --- a/qemu-monitor.hx > +++ b/qemu-monitor.hx > @@ -1723,8 +1723,6 @@ is a json-array of all devices. > Each json-object contain the following: > > - "device": device name (json-string) > -- "type": device type (json-string) > - - Possible values: "hd", "cdrom", "floppy", "unknown" > - "removable": true if the device is removable, false otherwise (json-bool) > - "locked": true if the device is locked, false otherwise (json-bool) > - "inserted": only present if the device is inserted, it is a json-object > @@ -1755,25 +1753,21 @@ Example: > "encrypted":false, > "file":"disks/test.img" > }, > - "type":"hd" > }, > { > "device":"ide1-cd0", > "locked":false, > "removable":true, > - "type":"cdrom" > }, > { > "device":"floppy0", > "locked":false, > "removable":true, > - "type": "floppy" > }, > { > "device":"sd0", > "locked":false, > "removable":true, > - "type":"floppy" > } > ] > }