[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH v8 3/7] block: allow not one child for implicit
From: |
Max Reitz |
Subject: |
Re: [Qemu-block] [PATCH v8 3/7] block: allow not one child for implicit node |
Date: |
Thu, 13 Jun 2019 15:51:54 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 |
On 29.05.19 17:46, Vladimir Sementsov-Ogievskiy wrote:
> Upcoming backup-top filter wants to operate like usual implicit filter
> node with fall-through to backing child. But also needs additional
> target child, let's support that.
>
> On the other hand, after backup completion (before job dismiss) filter
> is still attached to job blk, but don't have any children. Support this
> too.
>
> Signed-off-by: Vladimir Sementsov-Ogievskiy <address@hidden>
> ---
> block.c | 15 +++++++++++++--
> 1 file changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/block.c b/block.c
> index 57216f4115..3f4de3ae32 100644
> --- a/block.c
> +++ b/block.c
> @@ -6200,9 +6200,20 @@ void bdrv_refresh_filename(BlockDriverState *bs)
> }
>
> if (bs->implicit) {
> - /* For implicit nodes, just copy everything from the single child */
> + /*
> + * For implicit nodes, just copy everything from the single child or
> + * from backing, if there are several children.
> + * If there are no children for some reason (filter is still attached
> + * to block-job blk, but already removed from backing chain of
> device)
> + * do nothing.
> + */
> child = QLIST_FIRST(&bs->children);
> - assert(QLIST_NEXT(child, next) == NULL);
> + if (!child) {
> + return;
> + } else if (QLIST_NEXT(child, next)) {
> + assert(bs->backing);
> + child = bs->backing;
> + }
>
> pstrcpy(bs->exact_filename, sizeof(bs->exact_filename),
> child->bs->exact_filename);
Reviewed-by: Max Reitz <address@hidden>
(To be changed to bdrv_filtered_rw_bs(), of course)
signature.asc
Description: OpenPGP digital signature
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-block] [PATCH v8 3/7] block: allow not one child for implicit node,
Max Reitz <=