[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 15/18] block QMP: Deprecate query-block's "type", dr
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] [PATCH 15/18] block QMP: Deprecate query-block's "type", drop info block's "type=" |
Date: |
Thu, 19 May 2011 14:33:29 +0200 |
From: Markus Armbruster <address@hidden>
query-block's specification documents response member "type" with
values "hd", "cdrom", "floppy", "unknown".
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.
No known user of QMP uses "type". It's unlikely that any unknown
users exist, because its value is useless unless you know how the
block device was created. But then you also know the true value.
Fixing the broken value risks breaking (hypothetical!) clients that
somehow rely on the current behavior. Not fixing the value risks
breaking (hypothetical!) clients that rely on the value to be
accurate. Can't entirely avoid hypothetical lossage. Change the
value to be always "unknown".
This makes "info block" always report "type=unknown". Pointless.
Change it to not report the type.
Signed-off-by: Markus Armbruster <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>
---
block.c | 20 +++-----------------
qmp-commands.hx | 11 ++++++-----
2 files changed, 9 insertions(+), 22 deletions(-)
diff --git a/block.c b/block.c
index f403718..9de7450 100644
--- a/block.c
+++ b/block.c
@@ -1704,9 +1704,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")) {
@@ -1747,23 +1746,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, 'type': 'unknown', "
"'removable': %i, 'locked': %i }",
- bs->device_name, type, bs->removable,
+ bs->device_name, bs->removable,
bs->locked);
if (bs->drv) {
diff --git a/qmp-commands.hx b/qmp-commands.hx
index fbd98ee..a9f109a 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -1039,7 +1039,8 @@ Each json-object contain the following:
- "device": device name (json-string)
- "type": device type (json-string)
- - Possible values: "hd", "cdrom", "floppy", "unknown"
+ - deprecated, retained for backward compatibility
+ - Possible values: "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
@@ -1070,25 +1071,25 @@ Example:
"encrypted":false,
"file":"disks/test.img"
},
- "type":"hd"
+ "type":"unknown"
},
{
"device":"ide1-cd0",
"locked":false,
"removable":true,
- "type":"cdrom"
+ "type":"unknown"
},
{
"device":"floppy0",
"locked":false,
"removable":true,
- "type": "floppy"
+ "type":"unknown"
},
{
"device":"sd0",
"locked":false,
"removable":true,
- "type":"floppy"
+ "type":"unknown"
}
]
}
--
1.7.2.3
- [Qemu-devel] [PATCH 04/18] hw/xen_disk: Remove unused local variable, (continued)
- [Qemu-devel] [PATCH 04/18] hw/xen_disk: Remove unused local variable, Kevin Wolf, 2011/05/19
- [Qemu-devel] [PATCH 06/18] Add documentation for qemu_progress_{init, print}(), Kevin Wolf, 2011/05/19
- [Qemu-devel] [PATCH 08/18] qemu-tool: Stub out qemu-timer functions, Kevin Wolf, 2011/05/19
- [Qemu-devel] [PATCH 07/18] ahci: Fix crashes on duplicate BH registration, Kevin Wolf, 2011/05/19
- [Qemu-devel] [PATCH 09/18] qed: Periodically flush and clear need check bit, Kevin Wolf, 2011/05/19
- [Qemu-devel] [PATCH 11/18] qed: support for growing images, Kevin Wolf, 2011/05/19
- [Qemu-devel] [PATCH 12/18] ide: Split qdev "ide-drive" into "ide-hd" and "ide-cd", Kevin Wolf, 2011/05/19
- [Qemu-devel] [PATCH 10/18] qemu_img: is_not_zero() optimization, Kevin Wolf, 2011/05/19
- [Qemu-devel] [PATCH 14/18] defaults: ide-cd, ide-hd and scsi-cd devices suppress default CD-ROM, Kevin Wolf, 2011/05/19
- [Qemu-devel] [PATCH 13/18] scsi: Split qdev "scsi-disk" into "scsi-hd" and "scsi-cd", Kevin Wolf, 2011/05/19
- [Qemu-devel] [PATCH 15/18] block QMP: Deprecate query-block's "type", drop info block's "type=",
Kevin Wolf <=
- [Qemu-devel] [PATCH 16/18] blockdev: Store -drive option media in DriveInfo, Kevin Wolf, 2011/05/19
- [Qemu-devel] [PATCH 17/18] block: Remove type hint, it's guest matter, doesn't belong here, Kevin Wolf, 2011/05/19
- [Qemu-devel] [PATCH 18/18] ahci: Fix non-NCQ accesses for LBA > 16bits, Kevin Wolf, 2011/05/19
- Re: [Qemu-devel] [PULL 00/18] Block patches, Anthony Liguori, 2011/05/19