From: Kevin Wolf <kwolf@redhat.com>
To: qemu-block@nongnu.org
Cc: kwolf@redhat.com, armbru@redhat.com, qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH] block/null: Remove 'filename' option
Date: Fri, 4 Aug 2017 16:43:54 +0200 [thread overview]
Message-ID: <20170804144354.21985-1-kwolf@redhat.com> (raw)
This option was only added to allow 'null-co://' and 'null-aio://' as
filenames, its value never served any actual purpose and was ignored.
Nevertheless it was accepted as '-drive driver=null,filename=foo'.
The correct way to enable the protocol prefixes (and that without adding
a useless -drive option) is implementing .bdrv_parse_filename. This is
what this patch does.
Technically, this is an incompatible change, but the null block driver
is only used for benchmarking, testing and debugging, and an option
without effect isn't likely to be used by anyone anyway, so no bad
effects are to be expected.
Reported-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
block/null.c | 31 ++++++++++++++++++++++++++-----
1 file changed, 26 insertions(+), 5 deletions(-)
diff --git a/block/null.c b/block/null.c
index 876f90965b..dd9c13f9ba 100644
--- a/block/null.c
+++ b/block/null.c
@@ -30,11 +30,6 @@ static QemuOptsList runtime_opts = {
.head = QTAILQ_HEAD_INITIALIZER(runtime_opts.head),
.desc = {
{
- .name = "filename",
- .type = QEMU_OPT_STRING,
- .help = "",
- },
- {
.name = BLOCK_OPT_SIZE,
.type = QEMU_OPT_SIZE,
.help = "size of the null block",
@@ -54,6 +49,30 @@ static QemuOptsList runtime_opts = {
},
};
+static void null_co_parse_filename(const char *filename, QDict *options,
+ Error **errp)
+{
+ /* This functions only exists so that a null-co:// filename is accepted
+ * with the null-co driver. */
+ if (strcmp(filename, "null-co://")) {
+ error_setg(errp, "The only allowed filename for this driver is "
+ "'null-co://'");
+ return;
+ }
+}
+
+static void null_aio_parse_filename(const char *filename, QDict *options,
+ Error **errp)
+{
+ /* This functions only exists so that a null-aio:// filename is accepted
+ * with the null-aio driver. */
+ if (strcmp(filename, "null-aio://")) {
+ error_setg(errp, "The only allowed filename for this driver is "
+ "'null-aio://'");
+ return;
+ }
+}
+
static int null_file_open(BlockDriverState *bs, QDict *options, int flags,
Error **errp)
{
@@ -242,6 +261,7 @@ static BlockDriver bdrv_null_co = {
.instance_size = sizeof(BDRVNullState),
.bdrv_file_open = null_file_open,
+ .bdrv_parse_filename = null_co_parse_filename,
.bdrv_close = null_close,
.bdrv_getlength = null_getlength,
@@ -261,6 +281,7 @@ static BlockDriver bdrv_null_aio = {
.instance_size = sizeof(BDRVNullState),
.bdrv_file_open = null_file_open,
+ .bdrv_parse_filename = null_aio_parse_filename,
.bdrv_close = null_close,
.bdrv_getlength = null_getlength,
--
2.13.3
next reply other threads:[~2017-08-04 14:49 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-04 14:43 Kevin Wolf [this message]
2017-08-04 14:56 ` [Qemu-devel] [Qemu-block] [PATCH] block/null: Remove 'filename' option Eric Blake
2017-08-07 14:02 ` Kevin Wolf
2017-08-04 15:50 ` Jeff Cody
2017-08-08 10:13 ` Stefan Hajnoczi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170804144354.21985-1-kwolf@redhat.com \
--to=kwolf@redhat.com \
--cc=armbru@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).