|
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
[Prev in Thread] | Current Thread | [Next in Thread] |