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 BlockBackend. While there, give bdrv_query_info() internal linkage. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Benoît Canet <benoit.canet@nodalink.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
		
							parent
							
								
									26f8b3a847
								
							
						
					
					
						commit
						d829a2115f
					
				
							
								
								
									
										15
									
								
								block/qapi.c
								
								
								
								
							
							
						
						
									
										15
									
								
								block/qapi.c
								
								
								
								
							| 
						 | 
					@ -28,6 +28,7 @@
 | 
				
			||||||
#include "qapi-visit.h"
 | 
					#include "qapi-visit.h"
 | 
				
			||||||
#include "qapi/qmp-output-visitor.h"
 | 
					#include "qapi/qmp-output-visitor.h"
 | 
				
			||||||
#include "qapi/qmp/types.h"
 | 
					#include "qapi/qmp/types.h"
 | 
				
			||||||
 | 
					#include "sysemu/block-backend.h"
 | 
				
			||||||
#ifdef __linux__
 | 
					#ifdef __linux__
 | 
				
			||||||
#include <linux/fs.h>
 | 
					#include <linux/fs.h>
 | 
				
			||||||
#include <sys/ioctl.h>
 | 
					#include <sys/ioctl.h>
 | 
				
			||||||
| 
						 | 
					@ -264,15 +265,15 @@ void bdrv_query_image_info(BlockDriverState *bs,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* @p_info will be set only on success. */
 | 
					/* @p_info will be set only on success. */
 | 
				
			||||||
void bdrv_query_info(BlockDriverState *bs,
 | 
					static void bdrv_query_info(BlockBackend *blk, BlockInfo **p_info,
 | 
				
			||||||
                     BlockInfo **p_info,
 | 
					                            Error **errp)
 | 
				
			||||||
                     Error **errp)
 | 
					 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    BlockInfo *info = g_malloc0(sizeof(*info));
 | 
					    BlockInfo *info = g_malloc0(sizeof(*info));
 | 
				
			||||||
 | 
					    BlockDriverState *bs = blk_bs(blk);
 | 
				
			||||||
    BlockDriverState *bs0;
 | 
					    BlockDriverState *bs0;
 | 
				
			||||||
    ImageInfo **p_image_info;
 | 
					    ImageInfo **p_image_info;
 | 
				
			||||||
    Error *local_err = NULL;
 | 
					    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->type = g_strdup("unknown");
 | 
				
			||||||
    info->locked = bdrv_dev_is_medium_locked(bs);
 | 
					    info->locked = bdrv_dev_is_medium_locked(bs);
 | 
				
			||||||
    info->removable = bdrv_dev_has_removable_media(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 *qmp_query_block(Error **errp)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    BlockInfoList *head = NULL, **p_next = &head;
 | 
					    BlockInfoList *head = NULL, **p_next = &head;
 | 
				
			||||||
    BlockDriverState *bs = NULL;
 | 
					    BlockBackend *blk;
 | 
				
			||||||
    Error *local_err = NULL;
 | 
					    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));
 | 
					        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) {
 | 
					        if (local_err) {
 | 
				
			||||||
            error_propagate(errp, local_err);
 | 
					            error_propagate(errp, local_err);
 | 
				
			||||||
            goto err;
 | 
					            goto err;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -36,9 +36,6 @@ int bdrv_query_snapshot_info_list(BlockDriverState *bs,
 | 
				
			||||||
void bdrv_query_image_info(BlockDriverState *bs,
 | 
					void bdrv_query_image_info(BlockDriverState *bs,
 | 
				
			||||||
                           ImageInfo **p_info,
 | 
					                           ImageInfo **p_info,
 | 
				
			||||||
                           Error **errp);
 | 
					                           Error **errp);
 | 
				
			||||||
void bdrv_query_info(BlockDriverState *bs,
 | 
					 | 
				
			||||||
                     BlockInfo **p_info,
 | 
					 | 
				
			||||||
                     Error **errp);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
void bdrv_snapshot_dump(fprintf_function func_fprintf, void *f,
 | 
					void bdrv_snapshot_dump(fprintf_function func_fprintf, void *f,
 | 
				
			||||||
                        QEMUSnapshotInfo *sn);
 | 
					                        QEMUSnapshotInfo *sn);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue