block: Keep "filename" option after parsing
Currently, bdrv_file_open() always removes the "filename" option from the options QDict after bdrv_parse_filename() has been (successfully) called. However, for drivers with bdrv_needs_filename, it makes more sense for bdrv_parse_filename() to overwrite the "filename" option and for bdrv_file_open() to fetch the filename from there. Since there currently are no drivers that implement bdrv_parse_filename() and have bdrv_needs_filename set, this does not change current behavior. Signed-off-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Benoit Canet <benoit@irqsave.net> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
50c75136be
commit
cd5d031e75
7
block.c
7
block.c
@ -1017,7 +1017,12 @@ static int bdrv_file_open(BlockDriverState *bs, const char *filename,
|
||||
ret = -EINVAL;
|
||||
goto fail;
|
||||
}
|
||||
qdict_del(*options, "filename");
|
||||
|
||||
if (!drv->bdrv_needs_filename) {
|
||||
qdict_del(*options, "filename");
|
||||
} else {
|
||||
filename = qdict_get_str(*options, "filename");
|
||||
}
|
||||
}
|
||||
|
||||
if (!drv->bdrv_file_open) {
|
||||
|
Loading…
Reference in New Issue
Block a user