qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 1/2] block: make bdrv_drop_intermediate() less wrong


From: Vladimir Sementsov-Ogievskiy
Subject: Re: [PATCH 1/2] block: make bdrv_drop_intermediate() less wrong
Date: Fri, 6 Nov 2020 12:26:18 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0

05.11.2020 18:14, Alberto Garcia wrote:
On Sat 31 Oct 2020 01:35:01 PM CET, Vladimir Sementsov-Ogievskiy wrote:
-    QLIST_FOREACH_SAFE(c, &top->parents, next_parent, next) {
   /* ... */
+    QLIST_FOREACH_SAFE(c, &base->parents, next_parent, next) {

I also wonder, is top->parents and base->parents guaranteed to be the
same list in this case?

If not you could store the list of top->parents before calling
bdrv_replace_node() and use it afterwards.

     QLIST_FOREACH(c, &top->parents, next_parent) {
         parents = g_slist_prepend(parents, c);
     }

Berto


Hmm... We should not touch other parents of base, which it had prior to 
bdrv_replace_node().

On the other hand, it should be safe to call update_filename for not-updated 
parents..

And we should keep in mind that bdrv_replace_node may replace not all children. 
Still, in this
case we must replace all of them. Seems, we need additional argument for 
bdrv_replace_node()
to fail, if it want's to skip some children replacement.

So, I'm going to resend to add this parameter to bdrv_replace_node() and will 
use your
suggestion to be stricter on what we update, thanks!


--
Best regards,
Vladimir



reply via email to

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