block: Pass reference to bdrv_file_open()
With that now being possible, bdrv_open() should try to extract a block device reference from the options and pass it to bdrv_file_open(). Signed-off-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
72daa72eee
commit
2258e3fe20
5
block.c
5
block.c
@ -1056,6 +1056,7 @@ int bdrv_open(BlockDriverState *bs, const char *filename, QDict *options,
|
|||||||
char tmp_filename[PATH_MAX + 1];
|
char tmp_filename[PATH_MAX + 1];
|
||||||
BlockDriverState *file = NULL;
|
BlockDriverState *file = NULL;
|
||||||
QDict *file_options = NULL;
|
QDict *file_options = NULL;
|
||||||
|
const char *file_reference;
|
||||||
const char *drvname;
|
const char *drvname;
|
||||||
Error *local_err = NULL;
|
Error *local_err = NULL;
|
||||||
|
|
||||||
@ -1142,9 +1143,11 @@ int bdrv_open(BlockDriverState *bs, const char *filename, QDict *options,
|
|||||||
}
|
}
|
||||||
|
|
||||||
qdict_extract_subqdict(options, &file_options, "file.");
|
qdict_extract_subqdict(options, &file_options, "file.");
|
||||||
|
file_reference = qdict_get_try_str(options, "file");
|
||||||
|
|
||||||
ret = bdrv_file_open(&file, filename, NULL, file_options,
|
ret = bdrv_file_open(&file, filename, file_reference, file_options,
|
||||||
bdrv_open_flags(bs, flags | BDRV_O_UNMAP), &local_err);
|
bdrv_open_flags(bs, flags | BDRV_O_UNMAP), &local_err);
|
||||||
|
qdict_del(options, "file");
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user