On Fri, 06/10 20:57, Max Reitz wrote:
> Signed-off-by: Max Reitz <[email protected]>
The commit message could go a little more informative. Seems nothing special in
the added callback, aren't things supposed to just work without this patch?
What is missing?
> ---
> block/null.c | 20 ++++++++++++++++++++
> 1 file changed, 20 insertions(+)
>
> diff --git a/block/null.c b/block/null.c
> index 396500b..b511010 100644
> --- a/block/null.c
> +++ b/block/null.c
> @@ -12,6 +12,8 @@
>
> #include "qemu/osdep.h"
> #include "qapi/error.h"
> +#include "qapi/qmp/qdict.h"
> +#include "qapi/qmp/qstring.h"
> #include "block/block_int.h"
>
> #define NULL_OPT_LATENCY "latency-ns"
> @@ -223,6 +225,20 @@ static int64_t coroutine_fn
> null_co_get_block_status(BlockDriverState *bs,
> }
> }
>
> +static void null_refresh_filename(BlockDriverState *bs, QDict *opts)
> +{
> + QINCREF(opts);
> + qdict_del(opts, "filename");
Why is this qdict_del necessary?
> +
> + if (!qdict_size(opts)) {
> + snprintf(bs->exact_filename, sizeof(bs->exact_filename), "%s://",
> + bs->drv->format_name);
> + }
> +
> + qdict_put(opts, "driver", qstring_from_str(bs->drv->format_name));
> + bs->full_open_options = opts;
> +}
> +
> static BlockDriver bdrv_null_co = {
> .format_name = "null-co",
> .protocol_name = "null-co",
> @@ -238,6 +254,8 @@ static BlockDriver bdrv_null_co = {
> .bdrv_reopen_prepare = null_reopen_prepare,
>
> .bdrv_co_get_block_status = null_co_get_block_status,
> +
> + .bdrv_refresh_filename = null_refresh_filename,
> };
>
> static BlockDriver bdrv_null_aio = {
> @@ -255,6 +273,8 @@ static BlockDriver bdrv_null_aio = {
> .bdrv_reopen_prepare = null_reopen_prepare,
>
> .bdrv_co_get_block_status = null_co_get_block_status,
> +
> + .bdrv_refresh_filename = null_refresh_filename,
> };
>
> static void bdrv_null_init(void)
> --
> 2.8.3
>