The function reads the parents list, so it needs to hold the graph lock.

Signed-off-by: Kevin Wolf <kw...@redhat.com>
---
 block.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/block.c b/block.c
index 7df8780d6e..a82389f742 100644
--- a/block.c
+++ b/block.c
@@ -5934,9 +5934,11 @@ int bdrv_drop_intermediate(BlockDriverState *top, 
BlockDriverState *base,
         backing_file_str = base->filename;
     }
 
+    bdrv_graph_rdlock_main_loop();
     QLIST_FOREACH(c, &top->parents, next_parent) {
         updated_children = g_slist_prepend(updated_children, c);
     }
+    bdrv_graph_rdunlock_main_loop();
 
     /*
      * It seems correct to pass detach_subchain=true here, but it triggers
-- 
2.41.0


Reply via email to