OSDN Git Service

qemu-io: use BDRV_O_FILE to implement the growable open option
authorChristoph Hellwig <hch@lst.de>
Wed, 15 Jul 2009 21:11:21 +0000 (23:11 +0200)
committerAnthony Liguori <aliguori@us.ibm.com>
Thu, 16 Jul 2009 22:28:50 +0000 (17:28 -0500)
Instead of doing our own check for protocols which fails because raw isn't
formally a protocol but special cased in find_protocol specify the BDRV_O_FILE
option to use the same code as bdrv_file_open does.

While we're at it also add the missing documentation for -g to the main
qemu-io help string.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
qemu-io.c

index 1bf94e1..6c35a07 100644 (file)
--- a/qemu-io.c
+++ b/qemu-io.c
@@ -1237,23 +1237,19 @@ static int openfile(char *name, int flags, int growable)
        if (!bs)
                return 1;
 
+       if (growable) {
+               flags |= BDRV_O_FILE;
+       }
+
        if (bdrv_open(bs, name, flags) == -1) {
                fprintf(stderr, "%s: can't open device %s\n", progname, name);
                bs = NULL;
                return 1;
        }
 
-
        if (growable) {
-               if (!bs->drv || !bs->drv->protocol_name) {
-                       fprintf(stderr,
-                               "%s: only protocols can be opened growable\n",
-                               progname);
-                       return 1;
-               }
                bs->growable = 1;
        }
-
        return 0;
 }
 
@@ -1365,6 +1361,7 @@ static void usage(const char *name)
 "  -r, --read-only      export read-only\n"
 "  -s, --snapshot       use snapshot file\n"
 "  -n, --nocache        disable host cache\n"
+"  -g, --growable       allow file to grow (only applies to protocols)\n"
 "  -m, --misalign       misalign allocations for O_DIRECT\n"
 "  -h, --help           display this help and exit\n"
 "  -V, --version        output version information and exit\n"