[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v13 07/14] block: Parse "backing" option to refe
From: |
Benoît Canet |
Subject: |
Re: [Qemu-devel] [PATCH v13 07/14] block: Parse "backing" option to reference existing BDS |
Date: |
Thu, 13 Feb 2014 14:17:53 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
The Wednesday 29 Jan 2014 à 13:07:34 (+0800), Fam Zheng wrote :
> Now it's safe to allow reference for backing_hd in the interface.
>
> Signed-off-by: Fam Zheng <address@hidden>
> ---
> block.c | 26 ++++++++++++++++++++++++--
> 1 file changed, 24 insertions(+), 2 deletions(-)
>
> diff --git a/block.c b/block.c
> index 4e3b393..9d57223 100644
> --- a/block.c
> +++ b/block.c
> @@ -1392,12 +1392,34 @@ int bdrv_open(BlockDriverState *bs, const char
> *filename, QDict *options,
> /* If there is a backing file, use it */
> if ((flags & BDRV_O_NO_BACKING) == 0) {
> QDict *backing_options;
> + const char *backing_name;
> + BlockDriverState *backing_hd;
>
> + backing_name = qdict_get_try_str(options, "backing");
> qdict_extract_subqdict(options, &backing_options, "backing.");
> - ret = bdrv_open_backing_file(bs, backing_options, &local_err);
> - if (ret < 0) {
> +
> + if (backing_name && qdict_size(backing_options)) {
> + error_setg(&local_err,
> + "Option \"backing\" and \"backing.*\" cannot be "
> + "used together");
> + ret = -EINVAL;
> goto close_and_fail;
> }
> + if (backing_name) {
> + backing_hd = bdrv_find(backing_name);
Is backing_name a reference ?
If so it would be nice if backing_name could refer to a bs by id or
or an element of the graph by node-name.
I posted a series which relax bdrv_lookup_bs rules to do so.
Maybe this could be done after merge in another patch.
> + if (!backing_hd) {
> + error_set(&local_err, QERR_DEVICE_NOT_FOUND, backing_name);
> + ret = -ENOENT;
> + goto close_and_fail;
> + }
> + qdict_del(options, "backing");
> + bdrv_set_backing_hd(bs, backing_hd);
> + } else {
> + ret = bdrv_open_backing_file(bs, backing_options, &local_err);
> + if (ret < 0) {
> + goto close_and_fail;
> + }
> + }
> }
>
> /* Check if any unknown options were used */
> --
> 1.8.5.3
>
>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH v13 07/14] block: Parse "backing" option to reference existing BDS,
Benoît Canet <=