On 19.12.2013 21:56, Eric Blake wrote:
On 12/19/2013 12:47 PM, Max Reitz wrote:
If the filename is not prefixed by "blkdebug:" in
blkdebug_parse_filename(), the blkdebug driver was not selected through
that protocol prefix, but by an explicit command line option
(file.driver=blkdebug or something similar). Contrary to the current
reaction, this is not a problem at all; we just need to store the
filename (in the x-image option) and can go on; the user just has to
manually specify the config option.
Signed-off-by: Max Reitz <mre...@redhat.com>
Reviewed-by: Kevin Wolf <kw...@redhat.com>
---
block/blkdebug.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Reviewed-by: Eric Blake <ebl...@redhat.com>
diff --git a/block/blkdebug.c b/block/blkdebug.c
index 627e29d..a2301d7 100644
--- a/block/blkdebug.c
+++ b/block/blkdebug.c
@@ -313,7 +313,9 @@ static void blkdebug_parse_filename(const char *filename,
QDict *options,
/* Parse the blkdebug: prefix */
if (!strstart(filename, "blkdebug:", &filename)) {
- error_setg(errp, "File name string must start with 'blkdebug:'");
+ /* There was no prefix; therefore, all options have to be already
+ present in the QDict (except for the filename) */
+ qdict_put(options, "x-image", qstring_from_str(filename));
Am I correct that x-image is internal use only, and that we aren't
exposing an x- interface to the public user?
Yes, this is correct.
Max