[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 15/20] rbd: Use bdrv_open options instead of filenam
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] [PATCH 15/20] rbd: Use bdrv_open options instead of filename |
Date: |
Mon, 22 Apr 2013 13:31:29 +0200 |
This is only to convert the internal interface that is used for passing
the "filename" to be parsed, but converting to actual fine grained
options is left for another day, as it doesn't look trivial.
Signed-off-by: Kevin Wolf <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
---
block/rbd.c | 31 ++++++++++++++++++++++++++++++-
1 file changed, 30 insertions(+), 1 deletion(-)
diff --git a/block/rbd.c b/block/rbd.c
index 141b488..0d68145 100644
--- a/block/rbd.c
+++ b/block/rbd.c
@@ -441,7 +441,21 @@ static int qemu_rbd_aio_flush_cb(void *opaque)
return (s->qemu_aio_count > 0);
}
-static int qemu_rbd_open(BlockDriverState *bs, const char *filename,
+/* TODO Convert to fine grained options */
+static QemuOptsList runtime_opts = {
+ .name = "rbd",
+ .head = QTAILQ_HEAD_INITIALIZER(runtime_opts.head),
+ .desc = {
+ {
+ .name = "filename",
+ .type = QEMU_OPT_STRING,
+ .help = "Specification of the rbd image",
+ },
+ { /* end of list */ }
+ },
+};
+
+static int qemu_rbd_open(BlockDriverState *bs, const char *dummy,
QDict *options, int flags)
{
BDRVRBDState *s = bs->opaque;
@@ -450,8 +464,23 @@ static int qemu_rbd_open(BlockDriverState *bs, const char
*filename,
char conf[RBD_MAX_CONF_SIZE];
char clientname_buf[RBD_MAX_CONF_SIZE];
char *clientname;
+ QemuOpts *opts;
+ Error *local_err = NULL;
+ const char *filename;
int r;
+ opts = qemu_opts_create_nofail(&runtime_opts);
+ qemu_opts_absorb_qdict(opts, options, &local_err);
+ if (error_is_set(&local_err)) {
+ qerror_report_err(local_err);
+ error_free(local_err);
+ qemu_opts_del(opts);
+ return -EINVAL;
+ }
+
+ filename = qemu_opt_get(opts, "filename");
+ qemu_opts_del(opts);
+
if (qemu_rbd_parsename(filename, pool, sizeof(pool),
snap_buf, sizeof(snap_buf),
s->name, sizeof(s->name),
--
1.8.1.4
- [Qemu-devel] [PATCH 04/20] qemu-iotests: Fix _filter_qemu, (continued)
- [Qemu-devel] [PATCH 04/20] qemu-iotests: Fix _filter_qemu, Kevin Wolf, 2013/04/22
- [Qemu-devel] [PATCH 02/20] qcow: allow sub-cluster compressed write to last cluster, Kevin Wolf, 2013/04/22
- [Qemu-devel] [PATCH 06/20] block: Add driver-specific options for backing files, Kevin Wolf, 2013/04/22
- [Qemu-devel] [PATCH 07/20] block: Enable filename option, Kevin Wolf, 2013/04/22
- [Qemu-devel] [PATCH 05/20] block: Fail gracefully when using a format driver on protocol level, Kevin Wolf, 2013/04/22
- [Qemu-devel] [PATCH 08/20] raw-posix: Use bdrv_open options instead of filename, Kevin Wolf, 2013/04/22
- [Qemu-devel] [PATCH 10/20] blkdebug: Use bdrv_open options instead of filename, Kevin Wolf, 2013/04/22
- [Qemu-devel] [PATCH 09/20] raw-win32: Use bdrv_open options instead of filename, Kevin Wolf, 2013/04/22
- [Qemu-devel] [PATCH 11/20] blkverify: Use bdrv_open options instead of filename, Kevin Wolf, 2013/04/22
- [Qemu-devel] [PATCH 13/20] gluster: Use bdrv_open options instead of filename, Kevin Wolf, 2013/04/22
- [Qemu-devel] [PATCH 15/20] rbd: Use bdrv_open options instead of filename,
Kevin Wolf <=
- [Qemu-devel] [PATCH 12/20] curl: Use bdrv_open options instead of filename, Kevin Wolf, 2013/04/22
- [Qemu-devel] [PATCH 14/20] iscsi: Use bdrv_open options instead of filename, Kevin Wolf, 2013/04/22
- [Qemu-devel] [PATCH 17/20] vvfat: Use bdrv_open options instead of filename, Kevin Wolf, 2013/04/22
- [Qemu-devel] [PATCH 16/20] sheepdog: Use bdrv_open options instead of filename, Kevin Wolf, 2013/04/22
- [Qemu-devel] [PATCH 19/20] block: Allow overriding backing.file.filename, Kevin Wolf, 2013/04/22
- [Qemu-devel] [PATCH 20/20] qemu-iotests: add 053 unaligned compressed image size test, Kevin Wolf, 2013/04/22
- [Qemu-devel] [PATCH 18/20] block: Remove filename parameter from .bdrv_file_open(), Kevin Wolf, 2013/04/22