Commit d829a211 authored by Markus Armbruster's avatar Markus Armbruster Committed by Kevin Wolf

block/qapi: Convert qmp_query_block() to BlockBackend

Much more command code needs conversion.  I start with this one
because it's using bdrv_dev_* functions, which I'm about to lift into

While there, give bdrv_query_info() internal linkage.
Signed-off-by: default avatarMarkus Armbruster <>
Reviewed-by: default avatarBenoît Canet <>
Reviewed-by: default avatarMax Reitz <>
Reviewed-by: default avatarKevin Wolf <>
Signed-off-by: default avatarKevin Wolf <>
parent 26f8b3a8
......@@ -28,6 +28,7 @@
#include "qapi-visit.h"
#include "qapi/qmp-output-visitor.h"
#include "qapi/qmp/types.h"
#include "sysemu/block-backend.h"
#ifdef __linux__
#include <linux/fs.h>
#include <sys/ioctl.h>
......@@ -264,15 +265,15 @@ void bdrv_query_image_info(BlockDriverState *bs,
/* @p_info will be set only on success. */
void bdrv_query_info(BlockDriverState *bs,
BlockInfo **p_info,
Error **errp)
static void bdrv_query_info(BlockBackend *blk, BlockInfo **p_info,
Error **errp)
BlockInfo *info = g_malloc0(sizeof(*info));
BlockDriverState *bs = blk_bs(blk);
BlockDriverState *bs0;
ImageInfo **p_image_info;
Error *local_err = NULL;
info->device = g_strdup(bdrv_get_device_name(bs));
info->device = g_strdup(blk_name(blk));
info->type = g_strdup("unknown");
info->locked = bdrv_dev_is_medium_locked(bs);
info->removable = bdrv_dev_has_removable_media(bs);
......@@ -360,12 +361,12 @@ static BlockStats *bdrv_query_stats(const BlockDriverState *bs)
BlockInfoList *qmp_query_block(Error **errp)
BlockInfoList *head = NULL, **p_next = &head;
BlockDriverState *bs = NULL;
BlockBackend *blk;
Error *local_err = NULL;
while ((bs = bdrv_next(bs))) {
for (blk = blk_next(NULL); blk; blk = blk_next(blk)) {
BlockInfoList *info = g_malloc0(sizeof(*info));
bdrv_query_info(bs, &info->value, &local_err);
bdrv_query_info(blk, &info->value, &local_err);
if (local_err) {
error_propagate(errp, local_err);
goto err;
......@@ -36,9 +36,6 @@ int bdrv_query_snapshot_info_list(BlockDriverState *bs,
void bdrv_query_image_info(BlockDriverState *bs,
ImageInfo **p_info,
Error **errp);
void bdrv_query_info(BlockDriverState *bs,
BlockInfo **p_info,
Error **errp);
void bdrv_snapshot_dump(fprintf_function func_fprintf, void *f,
QEMUSnapshotInfo *sn);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment