block: make bdrv_swap rebuild the bs graph node list field.
commit90ce8a061bdcc485a56142cae68cfbfff270e634
authorBenoît Canet <benoit.canet@irqsave.net>
Wed, 5 Mar 2014 22:48:29 +0000 (5 23:48 +0100)
committerKevin Wolf <kwolf@redhat.com>
Thu, 6 Mar 2014 10:33:10 +0000 (6 11:33 +0100)
tree684bf0aef889952955a58a8372b3cc41fe3b3e6e
parent47ea2de2d68b6c5319308b7de1980f463b7c125c
block: make bdrv_swap rebuild the bs graph node list field.

Moving only the node_name one field could lead to some inconsitencies where a
node_name was defined on a bs which was not registered in the graph node list.

bdrv_swap between a named node bs and a non named node bs would lead to this.

bdrv_make_anon would then crash because it would try to remove the bs from the
graph node list while it is not in it.

This patch remove named node bses from the graph node list before doing the swap
then insert them back.

Signed-off-by: Benoit Canet <benoit@irqsave.net>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block.c