Skip to content

Commit

Permalink
block/null: Implement bdrv_refresh_filename()
Browse files Browse the repository at this point in the history
The null block driver ignores any filename used for creating its BDSs,
which allows creating such BDSs even without any filename at all. In
that case, we currently construct a JSON filename when queried instead
of a plain "null-co://" or "null-aio://". This patch implements
bdrv_refresh_filename() to remedy this behavior.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-id: 20160610185750.30956-4-mreitz@redhat.com
[mreitz@redhat.com: Added commit message]
Signed-off-by: Max Reitz <mreitz@redhat.com>
  • Loading branch information
XanClic committed Jun 16, 2016
1 parent 274fcce commit 67882b1
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions block/null.c
Expand Up @@ -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"
Expand Down Expand Up @@ -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");

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",
Expand All @@ -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 = {
Expand All @@ -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)
Expand Down

0 comments on commit 67882b1

Please sign in to comment.