Re: [Qemu-block] [PATCH 4/5] block: Drop drv parameter from bdrv_fill_options()

2015-08-27 Thread Alberto Garcia
On Wed 26 Aug 2015 07:47:51 PM CEST, Max Reitz wrote:

 Now that this parameter is effectively unused, we can drop it and
 change the function accordingly.

 Signed-off-by: Max Reitz mre...@redhat.com

Reviewed-by: Alberto Garcia be...@igalia.com

Berto



[Qemu-block] [PATCH 4/5] block: Drop drv parameter from bdrv_fill_options()

2015-08-26 Thread Max Reitz
Now that this parameter is effectively unused, we can drop it and change
the function accordingly.

Signed-off-by: Max Reitz mre...@redhat.com
---
 block.c | 59 ++-
 1 file changed, 22 insertions(+), 37 deletions(-)

diff --git a/block.c b/block.c
index 8aa5f25..434f43c 100644
--- a/block.c
+++ b/block.c
@@ -996,13 +996,13 @@ static QDict *parse_json_filename(const char *filename, 
Error **errp)
  * block driver has been specified explicitly.
  */
 static int bdrv_fill_options(QDict **options, const char **pfilename,
- int *flags, BlockDriver *drv, Error **errp)
+ int *flags, Error **errp)
 {
 const char *filename = *pfilename;
 const char *drvname;
 bool protocol = *flags  BDRV_O_PROTOCOL;
 bool parse_filename = false;
-BlockDriver *tmp_drv;
+BlockDriver *drv = NULL;
 Error *local_err = NULL;
 
 /* Parse json: pseudo-protocol */
@@ -1021,15 +1021,15 @@ static int bdrv_fill_options(QDict **options, const 
char **pfilename,
 }
 
 drvname = qdict_get_try_str(*options, driver);
-
-/* If the user has explicitly specified the driver, this choice should
- * override the BDRV_O_PROTOCOL flag */
-tmp_drv = drv;
-if (!tmp_drv  drvname) {
-tmp_drv = bdrv_find_format(drvname);
-}
-if (tmp_drv) {
-protocol = tmp_drv-bdrv_file_open;
+if (drvname) {
+drv = bdrv_find_format(drvname);
+if (!drv) {
+error_setg(errp, Unknown driver '%s', drvname);
+return -ENOENT;
+}
+/* If the user has explicitly specified the driver, this choice should
+ * override the BDRV_O_PROTOCOL flag */
+protocol = drv-bdrv_file_open;
 }
 
 if (protocol) {
@@ -1053,33 +1053,18 @@ static int bdrv_fill_options(QDict **options, const 
char **pfilename,
 /* Find the right block driver */
 filename = qdict_get_try_str(*options, filename);
 
-if (drv) {
-if (drvname) {
-error_setg(errp, Driver specified twice);
-return -EINVAL;
-}
-drvname = drv-format_name;
-qdict_put(*options, driver, qstring_from_str(drvname));
-} else {
-if (!drvname  protocol) {
-if (filename) {
-drv = bdrv_find_protocol(filename, parse_filename, errp);
-if (!drv) {
-return -EINVAL;
-}
-
-drvname = drv-format_name;
-qdict_put(*options, driver, qstring_from_str(drvname));
-} else {
-error_setg(errp, Must specify either driver or file);
-return -EINVAL;
-}
-} else if (drvname) {
-drv = bdrv_find_format(drvname);
+if (!drvname  protocol) {
+if (filename) {
+drv = bdrv_find_protocol(filename, parse_filename, errp);
 if (!drv) {
-error_setg(errp, Unknown driver '%s', drvname);
-return -ENOENT;
+return -EINVAL;
 }
+
+drvname = drv-format_name;
+qdict_put(*options, driver, qstring_from_str(drvname));
+} else {
+error_setg(errp, Must specify either driver or file);
+return -EINVAL;
 }
 }
 
@@ -1474,7 +1459,7 @@ static int bdrv_open_inherit(BlockDriverState **pbs, 
const char *filename,
 flags = child_role-inherit_flags(parent-open_flags);
 }
 
-ret = bdrv_fill_options(options, filename, flags, NULL, local_err);
+ret = bdrv_fill_options(options, filename, flags, local_err);
 if (local_err) {
 goto fail;
 }
-- 
2.4.6