qemu-io: use BDRV_O_FILE to implement the growable open option

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>
This commit is contained in:
Christoph Hellwig 2009-07-15 23:11:21 +02:00 committed by Anthony Liguori
parent 0873898472
commit 1db6947daf

View File

@ -1237,23 +1237,19 @@ static int openfile(char *name, int flags, int growable)
if (!bs) if (!bs)
return 1; return 1;
if (growable) {
flags |= BDRV_O_FILE;
}
if (bdrv_open(bs, name, flags) == -1) { if (bdrv_open(bs, name, flags) == -1) {
fprintf(stderr, "%s: can't open device %s\n", progname, name); fprintf(stderr, "%s: can't open device %s\n", progname, name);
bs = NULL; bs = NULL;
return 1; return 1;
} }
if (growable) { 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; bs->growable = 1;
} }
return 0; return 0;
} }
@ -1365,6 +1361,7 @@ static void usage(const char *name)
" -r, --read-only export read-only\n" " -r, --read-only export read-only\n"
" -s, --snapshot use snapshot file\n" " -s, --snapshot use snapshot file\n"
" -n, --nocache disable host cache\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" " -m, --misalign misalign allocations for O_DIRECT\n"
" -h, --help display this help and exit\n" " -h, --help display this help and exit\n"
" -V, --version output version information and exit\n" " -V, --version output version information and exit\n"