|
 |
76daa3 |
From f30511e056647e04317d67b43b49c95b68170ec2 Mon Sep 17 00:00:00 2001
|
|
 |
76daa3 |
From: Jeffrey Cody <jcody@redhat.com>
|
|
 |
76daa3 |
Date: Thu, 15 Jun 2017 15:50:28 +0200
|
|
 |
76daa3 |
Subject: [PATCH 3/8] block/rbd: enable filename option and parsing
|
|
 |
76daa3 |
|
|
 |
76daa3 |
RH-Author: Jeffrey Cody <jcody@redhat.com>
|
|
 |
76daa3 |
Message-id: <679a297faf8ee6b90984f52587a7ccf02c862436.1497541513.git.jcody@redhat.com>
|
|
 |
76daa3 |
Patchwork-id: 75617
|
|
 |
76daa3 |
O-Subject: [RHEV-7.4 qemu-kvm-rhev PATCH 1/2] block/rbd: enable filename option and parsing
|
|
 |
76daa3 |
Bugzilla: 1457088
|
|
 |
76daa3 |
RH-Acked-by: Juan Quintela <quintela@redhat.com>
|
|
 |
76daa3 |
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
 |
76daa3 |
RH-Acked-by: Max Reitz <mreitz@redhat.com>
|
|
 |
76daa3 |
RH-Acked-by: Richard Jones <rjones@redhat.com>
|
|
 |
76daa3 |
|
|
 |
76daa3 |
When enabling option parsing and blockdev-add for rbd, we removed the
|
|
 |
76daa3 |
'filename' option. Unfortunately, this was a bit optimistic, as
|
|
 |
76daa3 |
previous versions of QEMU allowed the use of the option in backing
|
|
 |
76daa3 |
filenames via json. This means that without parsing this option, we
|
|
 |
76daa3 |
cannot open existing images that used to work fine.
|
|
 |
76daa3 |
|
|
 |
76daa3 |
See bug: https://bugzilla.redhat.com/show_bug.cgi?id=1457088
|
|
 |
76daa3 |
|
|
 |
76daa3 |
Tested-by: Richard W.M. Jones <rjones@redhat.com>
|
|
 |
76daa3 |
Signed-off-by: Jeff Cody <jcody@redhat.com>
|
|
 |
76daa3 |
Message-id: 937dc9fde348d13311eb8e23444df3bc3190b612.1497444637.git.jcody@redhat.com
|
|
 |
76daa3 |
Signed-off-by: Jeff Cody <jcody@redhat.com>
|
|
 |
76daa3 |
(cherry picked from commit 91589d9e5ca658abcc915b078aaa66531a112348)
|
|
 |
76daa3 |
Signed-off-by: Jeff Cody <jcody@redhat.com>
|
|
 |
76daa3 |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
 |
76daa3 |
---
|
|
 |
76daa3 |
block/rbd.c | 22 +++++++++++++++++++++-
|
|
 |
76daa3 |
1 file changed, 21 insertions(+), 1 deletion(-)
|
|
 |
76daa3 |
|
|
 |
76daa3 |
diff --git a/block/rbd.c b/block/rbd.c
|
|
 |
76daa3 |
index 6471f4f..ce45b65 100644
|
|
 |
76daa3 |
--- a/block/rbd.c
|
|
 |
76daa3 |
+++ b/block/rbd.c
|
|
 |
76daa3 |
@@ -340,6 +340,10 @@ static QemuOptsList runtime_opts = {
|
|
 |
76daa3 |
.type = QEMU_OPT_STRING,
|
|
 |
76daa3 |
.help = "Legacy rados key/value option parameters",
|
|
 |
76daa3 |
},
|
|
 |
76daa3 |
+ {
|
|
 |
76daa3 |
+ .name = "filename",
|
|
 |
76daa3 |
+ .type = QEMU_OPT_STRING,
|
|
 |
76daa3 |
+ },
|
|
 |
76daa3 |
{ /* end of list */ }
|
|
 |
76daa3 |
},
|
|
 |
76daa3 |
};
|
|
 |
76daa3 |
@@ -541,12 +545,27 @@ static int qemu_rbd_open(BlockDriverState *bs, QDict *options, int flags,
|
|
 |
76daa3 |
{
|
|
 |
76daa3 |
BDRVRBDState *s = bs->opaque;
|
|
 |
76daa3 |
const char *pool, *snap, *conf, *user, *image_name, *keypairs;
|
|
 |
76daa3 |
- const char *secretid;
|
|
 |
76daa3 |
+ const char *secretid, *filename;
|
|
 |
76daa3 |
QemuOpts *opts;
|
|
 |
76daa3 |
Error *local_err = NULL;
|
|
 |
76daa3 |
char *mon_host = NULL;
|
|
 |
76daa3 |
int r;
|
|
 |
76daa3 |
|
|
 |
76daa3 |
+ /* If we are given a filename, parse the filename, with precedence given to
|
|
 |
76daa3 |
+ * filename encoded options */
|
|
 |
76daa3 |
+ filename = qdict_get_try_str(options, "filename");
|
|
 |
76daa3 |
+ if (filename) {
|
|
 |
76daa3 |
+ error_report("Warning: 'filename' option specified. "
|
|
 |
76daa3 |
+ "This is an unsupported option, and may be deprecated "
|
|
 |
76daa3 |
+ "in the future");
|
|
 |
76daa3 |
+ qemu_rbd_parse_filename(filename, options, &local_err);
|
|
 |
76daa3 |
+ if (local_err) {
|
|
 |
76daa3 |
+ r = -EINVAL;
|
|
 |
76daa3 |
+ error_propagate(errp, local_err);
|
|
 |
76daa3 |
+ goto exit;
|
|
 |
76daa3 |
+ }
|
|
 |
76daa3 |
+ }
|
|
 |
76daa3 |
+
|
|
 |
76daa3 |
opts = qemu_opts_create(&runtime_opts, NULL, 0, &error_abort);
|
|
 |
76daa3 |
qemu_opts_absorb_qdict(opts, options, &local_err);
|
|
 |
76daa3 |
if (local_err) {
|
|
 |
76daa3 |
@@ -665,6 +684,7 @@ failed_shutdown:
|
|
 |
76daa3 |
failed_opts:
|
|
 |
76daa3 |
qemu_opts_del(opts);
|
|
 |
76daa3 |
g_free(mon_host);
|
|
 |
76daa3 |
+exit:
|
|
 |
76daa3 |
return r;
|
|
 |
76daa3 |
}
|
|
 |
76daa3 |
|
|
 |
76daa3 |
--
|
|
 |
76daa3 |
1.8.3.1
|
|
 |
76daa3 |
|