qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]