@@ -1671,9 +1671,13 @@ static void bdrv_stats_iter(QObject *data, void *opaque)
qdict_get_int(qdict, "wr_operations"));
}
-void bdrv_stats_print(Monitor *mon, const QObject *data)
+void bdrv_stats(Monitor *mon)
{
+ QObject *data;
+
+ qmp_query_blockstats(NULL, &data);
qlist_iter(qobject_to_qlist(data), bdrv_stats_iter, mon);
+ qobject_decref(data);
}
static QObject* bdrv_info_stats_bs(BlockDriverState *bs)
@@ -54,7 +54,7 @@ void bdrv_mon_event(const BlockDriverState *bdrv,
BlockMonEventAction action, int is_read);
void qmp_query_block(Monitor *mon, QObject **ret_data);
void bdrv_info(Monitor *mon);
-void bdrv_stats_print(Monitor *mon, const QObject *data);
+void bdrv_stats(Monitor *mon);
void qmp_query_blockstats(Monitor *mon, QObject **ret_data);
void bdrv_init(void);
@@ -2416,8 +2416,7 @@ static const mon_cmd_t info_cmds[] = {
.args_type = "",
.params = "",
.help = "show block device statistics",
- .user_print = bdrv_stats_print,
- .mhandler.info_new = qmp_query_blockstats,
+ .mhandler.info = bdrv_stats,
},
{
.name = "registers",
The new handler directly calls qmp_query_blockstats() to gather data and then prints it. This change allows us to drop the user_print callback. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> --- block.c | 6 +++++- block.h | 2 +- monitor.c | 3 +-- 3 files changed, 7 insertions(+), 4 deletions(-)