From 4cdd01d32ee6fe04f8d909bfd3708be6864873a2 Mon Sep 17 00:00:00 2001 From: Kevin Wolf Date: Mon, 27 Apr 2015 13:50:54 +0200 Subject: block: Pass driver-specific options to .bdrv_refresh_filename() In order to decide whether a blkdebug: filename can be produced or a json: one is necessary, blkdebug checked whether bs->options had more options than just "config", "x-image" or "image" (the latter including nested options). That doesn't work well when generic block layer options are present. This patch passes an option QDict to the driver that contains only driver-specific options, i.e. the options for the general block layer as well as child nodes are already filtered out. Works much better this way. Signed-off-by: Kevin Wolf Reviewed-by: Max Reitz Reviewed-by: Alberto Garcia --- block.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'block.c') diff --git a/block.c b/block.c index fa351ac..c204d13 100644 --- a/block.c +++ b/block.c @@ -4027,7 +4027,10 @@ void bdrv_refresh_filename(BlockDriverState *bs) bs->full_open_options = NULL; } - drv->bdrv_refresh_filename(bs); + opts = qdict_new(); + append_open_options(opts, bs); + drv->bdrv_refresh_filename(bs, opts); + QDECREF(opts); } else if (bs->file) { /* Try to reconstruct valid information from the underlying file */ bool has_open_options; -- cgit v1.1