mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
block: get rid of the BDRV_O_FILE flag
BDRV_O_FILE is only used to communicate between bdrv_file_open and bdrv_open. It affects two things: first bdrv_open only searches for protocols using find_protocol instead of all image formats and host drivers. We can easily move that to the caller and pass the found driver to bdrv_open. Second it is used to not force a read-write open of a snapshot file. But we never use bdrv_file_open to open snapshots and this behaviour doesn't make sense to start with. qemu-io abused the BDRV_O_FILE for it's growable option, switch it to using bdrv_file_open to make sure we only open files as growable were we can actually support that. This patch requires Kevin's "[PATCH] Replace calls of old bdrv_open" to be applied first. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
d6e9098e10
commit
6db956039d
3 changed files with 25 additions and 26 deletions
28
qemu-io.c
28
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_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 (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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue