[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 06/12] block: Deep-clear inherits_from
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-devel] [PATCH v2 06/12] block: Deep-clear inherits_from |
Date: |
Tue, 16 Jul 2019 19:01:56 +0200 |
User-agent: |
Mutt/1.11.3 (2019-02-01) |
Am 03.07.2019 um 19:28 hat Max Reitz geschrieben:
> BDS.inherits_from does not always point to an immediate parent node.
> When launching a block job with a filter node, for example, the node
> directly below the filter will not point to the filter, but keep its old
> pointee (above the filter).
>
> If that pointee goes away while the job is still running, the node's
> inherits_from will not be updated and thus point to garbage. To fix
> this, bdrv_unref_child() has to check not only the parent node's
> immediate children for nodes whose inherits_from needs to be cleared,
> but its whole subtree.
>
> Signed-off-by: Max Reitz <address@hidden>
Isn't the real bug that we keep pointing to a node that isn't a parent
of the node any more? I think this will effectively disable option
inheritance in bdrv_reopen() as long as the filter node is present,
which is certainly not what we intended.
The intuitive thing would be that after inserting a filter, the image
now inherits from the filter node, and when the filter is removed, it
inherits from the filter's bs->inherit_from if that becomes a parent of
the node. (Though I'm not necessarily saying that my intuition is to be
trusted here.)
Kevin
- [Qemu-devel] [PATCH v2 11/12] iotests: Add read-only test case to 030, (continued)
- [Qemu-devel] [PATCH v2 11/12] iotests: Add read-only test case to 030, Max Reitz, 2019/07/03
- [Qemu-devel] [PATCH v2 02/12] block/stream: Fix error path, Max Reitz, 2019/07/03
- [Qemu-devel] [PATCH v2 05/12] block: Reduce (un)drains when replacing a child, Max Reitz, 2019/07/03
- [Qemu-devel] [PATCH v2 09/12] iotests: Add @use_log to VM.run_job(), Max Reitz, 2019/07/03
- [Qemu-devel] [PATCH v2 12/12] iotests: Add test for concurrent stream/commit, Max Reitz, 2019/07/03
- [Qemu-devel] [PATCH v2 07/12] iotests: Fix throttling in 030, Max Reitz, 2019/07/03
- [Qemu-devel] [PATCH v2 03/12] block/stream: Swap backing file change order, Max Reitz, 2019/07/03
- [Qemu-devel] [PATCH v2 08/12] iotests: Compare error messages in 030, Max Reitz, 2019/07/03
- [Qemu-devel] [PATCH v2 06/12] block: Deep-clear inherits_from, Max Reitz, 2019/07/03
- Re: [Qemu-devel] [PATCH v2 06/12] block: Deep-clear inherits_from,
Kevin Wolf <=
[Qemu-devel] [PATCH v2 10/12] iotests: Add new case to 030, Max Reitz, 2019/07/03
Re: [Qemu-devel] [PATCH v2 00/12] block: Fixes for concurrent block jobs, Max Reitz, 2019/07/10
Re: [Qemu-devel] [PATCH v2 00/12] block: Fixes for concurrent block jobs, Max Reitz, 2019/07/15