[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PULL 08/18] block/null: Remove 'filename' option
From: |
Kevin Wolf |
Subject: |
[Qemu-block] [PULL 08/18] block/null: Remove 'filename' option |
Date: |
Tue, 8 Aug 2017 15:58:28 +0200 |
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 <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Jeff Cody <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
---
block/null.c | 31 ++++++++++++++++++++++++++-----
tests/qemu-iotests/136 | 2 +-
2 files changed, 27 insertions(+), 6 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,
diff --git a/tests/qemu-iotests/136 b/tests/qemu-iotests/136
index 635b977552..4b994897af 100644
--- a/tests/qemu-iotests/136
+++ b/tests/qemu-iotests/136
@@ -75,7 +75,7 @@ sector = "%d"
drive_args.append("stats-account-failed=%s" %
(self.account_failed and "on" or "off"))
self.create_blkdebug_file()
- self.vm = iotests.VM().add_drive('blkdebug:%s:%s ' %
+ self.vm = iotests.VM().add_drive('blkdebug:%s:%s' %
(blkdebug_file, self.test_img),
','.join(drive_args))
self.vm.launch()
--
2.13.4
- [Qemu-block] [PULL 00/18] Block layer patches for 2.10.0-rc2, Kevin Wolf, 2017/08/08
- [Qemu-block] [PULL 02/18] quorum: Set sectors-count to 0 when reporting a flush error, Kevin Wolf, 2017/08/08
- [Qemu-block] [PULL 01/18] qemu-iotests/109: Fix lock race condition, Kevin Wolf, 2017/08/08
- [Qemu-block] [PULL 05/18] block/vhdx: check error return of bdrv_flush(), Kevin Wolf, 2017/08/08
- [Qemu-block] [PULL 06/18] block/vhdx: check error return of bdrv_truncate(), Kevin Wolf, 2017/08/08
- [Qemu-block] [PULL 03/18] block/vhdx: check error return of bdrv_getlength(), Kevin Wolf, 2017/08/08
- [Qemu-block] [PULL 04/18] block/vhdx: check for offset overflow to bdrv_truncate(), Kevin Wolf, 2017/08/08
- [Qemu-block] [PULL 08/18] block/null: Remove 'filename' option,
Kevin Wolf <=
- [Qemu-block] [PULL 09/18] vmdk: Fix error handling/reporting of vmdk_check, Kevin Wolf, 2017/08/08
- [Qemu-block] [PULL 07/18] block: drop bdrv_set_key from BlockDriver, Kevin Wolf, 2017/08/08
- [Qemu-block] [PULL 10/18] block: respect error code from bdrv_getlength in handle_aiocb_write_zeroes, Kevin Wolf, 2017/08/08
- [Qemu-block] [PULL 11/18] parallels: respect error code of bdrv_getlength() in allocate_clusters(), Kevin Wolf, 2017/08/08
- [Qemu-block] [PULL 12/18] parallels: drop check that bdrv_truncate() is working, Kevin Wolf, 2017/08/08
- [Qemu-block] [PULL 13/18] block: Fix order in bdrv_replace_child(), Kevin Wolf, 2017/08/08
- [Qemu-block] [PULL 14/18] block: Allow reopen rw without BDRV_O_ALLOW_RDWR, Kevin Wolf, 2017/08/08
- [Qemu-block] [PULL 16/18] qemu-io: Allow reopen read-write, Kevin Wolf, 2017/08/08
- [Qemu-block] [PULL 15/18] block: Set BDRV_O_ALLOW_RDWR during rw reopen, Kevin Wolf, 2017/08/08
- [Qemu-block] [PULL 18/18] block/nfs: fix mutex assertion in nfs_file_close(), Kevin Wolf, 2017/08/08