diff mbox

[5/5] block/raw-win32: bdrv_parse_filename() for hdev

Message ID 1394144861-2403-2-git-send-email-mreitz@redhat.com
State New
Headers show

Commit Message

Max Reitz March 6, 2014, 10:27 p.m. UTC
The "host_device" protocol driver should strip the "host_device:" prefix
from filenames if present.

Signed-off-by: Max Reitz <mreitz@redhat.com>
---
 block/raw-win32.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

Comments

Benoît Canet March 6, 2014, 10:47 p.m. UTC | #1
The Thursday 06 Mar 2014 à 23:27:41 (+0100), Max Reitz wrote :
> The "host_device" protocol driver should strip the "host_device:" prefix
> from filenames if present.
> 
> Signed-off-by: Max Reitz <mreitz@redhat.com>
> ---
>  block/raw-win32.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/block/raw-win32.c b/block/raw-win32.c
> index 9954748..48cb2c2 100644
> --- a/block/raw-win32.c
> +++ b/block/raw-win32.c
> @@ -593,6 +593,15 @@ static int hdev_probe_device(const char *filename)
>      return 0;
>  }
>  
> +static void hdev_parse_filename(const char *filename, QDict *options,
> +                                Error **errp)
> +{
> +    /* The prefix is optional, just as for "file". */
> +    strstart(filename, "host_device:", &filename);
> +
> +    qdict_put_obj(options, "filename", QOBJECT(qstring_from_str(filename)));
> +}
> +
>  static int hdev_open(BlockDriverState *bs, QDict *options, int flags,
>                       Error **errp)
>  {
> @@ -663,6 +672,7 @@ static BlockDriver bdrv_host_device = {
>      .protocol_name	= "host_device",
>      .instance_size	= sizeof(BDRVRawState),
>      .bdrv_needs_filename = true,
> +    .bdrv_parse_filename = hdev_parse_filename,
>      .bdrv_probe_device	= hdev_probe_device,
>      .bdrv_file_open	= hdev_open,
>      .bdrv_close		= raw_close,
> -- 
> 1.9.0
> 
> 
Reviewed-by: Benoit Canet <benoit@irqsave.net>
diff mbox

Patch

diff --git a/block/raw-win32.c b/block/raw-win32.c
index 9954748..48cb2c2 100644
--- a/block/raw-win32.c
+++ b/block/raw-win32.c
@@ -593,6 +593,15 @@  static int hdev_probe_device(const char *filename)
     return 0;
 }
 
+static void hdev_parse_filename(const char *filename, QDict *options,
+                                Error **errp)
+{
+    /* The prefix is optional, just as for "file". */
+    strstart(filename, "host_device:", &filename);
+
+    qdict_put_obj(options, "filename", QOBJECT(qstring_from_str(filename)));
+}
+
 static int hdev_open(BlockDriverState *bs, QDict *options, int flags,
                      Error **errp)
 {
@@ -663,6 +672,7 @@  static BlockDriver bdrv_host_device = {
     .protocol_name	= "host_device",
     .instance_size	= sizeof(BDRVRawState),
     .bdrv_needs_filename = true,
+    .bdrv_parse_filename = hdev_parse_filename,
     .bdrv_probe_device	= hdev_probe_device,
     .bdrv_file_open	= hdev_open,
     .bdrv_close		= raw_close,