summary refs log tree commit diff stats
path: root/qemu-io.c
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2014-09-08 18:50:58 +0200
committerKevin Wolf <kwolf@redhat.com>2014-09-10 10:41:29 +0200
commitdbb651c46cc1d30497763f3bc0229206f7522c44 (patch)
treee81a5e5292f07e69101f703363a2d2b53cd7de7f /qemu-io.c
parent0d4cc3e715f5794077895345577725539afe81eb (diff)
downloadfocaccia-qemu-dbb651c46cc1d30497763f3bc0229206f7522c44.tar.gz
focaccia-qemu-dbb651c46cc1d30497763f3bc0229206f7522c44.zip
qemu-io: Clean up openfile() after commit 2e40134
Commit 6db9560 split off the growable case so it can use
bdrv_file_open() instead of bdrv_open() then.  Growable BDSes become
anonymous.  Weird.

Commit 2e40134 folded bdrv_file_open() back into bdrv_open() with new
flag BDRV_O_PROTOCOL.  We still have two bdrv_open() calls, and
growable BDSes remain anonymous.

Circle back to before commit 6db9560: just one call, not anonymous.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'qemu-io.c')
-rw-r--r--qemu-io.c36
1 files changed, 13 insertions, 23 deletions
diff --git a/qemu-io.c b/qemu-io.c
index 33c96c4c1c..d2ab6946e8 100644
--- a/qemu-io.c
+++ b/qemu-io.c
@@ -58,30 +58,20 @@ static int openfile(char *name, int flags, int growable, QDict *opts)
         return 1;
     }
 
+    qemuio_bs = bdrv_new("hda", &error_abort);
+
     if (growable) {
-        if (bdrv_open(&qemuio_bs, name, NULL, opts, flags | BDRV_O_PROTOCOL,
-                      NULL, &local_err))
-        {
-            fprintf(stderr, "%s: can't open%s%s: %s\n", progname,
-                    name ? " device " : "", name ?: "",
-                    error_get_pretty(local_err));
-            error_free(local_err);
-            return 1;
-        }
-    } else {
-        qemuio_bs = bdrv_new("hda", &error_abort);
-
-        if (bdrv_open(&qemuio_bs, name, NULL, opts, flags, NULL, &local_err)
-            < 0)
-        {
-            fprintf(stderr, "%s: can't open%s%s: %s\n", progname,
-                    name ? " device " : "", name ?: "",
-                    error_get_pretty(local_err));
-            error_free(local_err);
-            bdrv_unref(qemuio_bs);
-            qemuio_bs = NULL;
-            return 1;
-        }
+        flags |= BDRV_O_PROTOCOL;
+    }
+
+    if (bdrv_open(&qemuio_bs, name, NULL, opts, flags, NULL, &local_err) < 0) {
+        fprintf(stderr, "%s: can't open%s%s: %s\n", progname,
+                name ? " device " : "", name ?: "",
+                error_get_pretty(local_err));
+        error_free(local_err);
+        bdrv_unref(qemuio_bs);
+        qemuio_bs = NULL;
+        return 1;
     }
 
     return 0;