]> git.proxmox.com Git - qemu.git/blobdiff - qemu-io.c
virtio-blk: Avoid zeroing every request structure
[qemu.git] / qemu-io.c
index 6b83714049c44f6810711fa647d87f7dd240cec8..8517b909c7a0374e5c6e3060d016ea82eadaeacf 100644 (file)
--- a/qemu-io.c
+++ b/qemu-io.c
@@ -1276,23 +1276,23 @@ static int openfile(char *name, int flags, int growable)
                return 1;
        }
 
-       bs = bdrv_new("hda");
-       if (!bs)
-               return 1;
-
        if (growable) {
-               flags |= BDRV_O_FILE;
-       }
-
-       if (bdrv_open(bs, name, flags) < 0) {
-               fprintf(stderr, "%s: can't open device %s\n", progname, name);
-               bs = NULL;
-               return 1;
+               if (bdrv_file_open(&bs, name, flags)) {
+                       fprintf(stderr, "%s: can't open device %s\n", progname, name);
+                       return 1;
+               }
+       } else {
+               bs = bdrv_new("hda");
+               if (!bs)
+                       return 1;
+
+               if (bdrv_open(bs, name, flags, NULL) < 0) {
+                       fprintf(stderr, "%s: can't open device %s\n", progname, name);
+                       bs = NULL;
+                       return 1;
+               }
        }
 
-       if (growable) {
-               bs->growable = 1;
-       }
        return 0;
 }