]> git.ipfire.org Git - thirdparty/qemu.git/commit
block: Drain source node in bdrv_replace_node()
authorKevin Wolf <kwolf@redhat.com>
Tue, 21 May 2019 17:00:25 +0000 (19:00 +0200)
committerKevin Wolf <kwolf@redhat.com>
Tue, 4 Jun 2019 13:20:41 +0000 (15:20 +0200)
commitf871abd60f4b67547e62c57c9bec19420052be39
tree852dcdb271e2585fa5bcd168c4f7cfe68e234186
parente2a58ff493a2e00db3e963c1839c5374500110f2
block: Drain source node in bdrv_replace_node()

Instead of just asserting that no requests are in flight in
bdrv_replace_node(), which is a requirement that most callers ignore, we
can just drain the source node right there. This fixes at least starting
a commit job while I/O is active on the backing chain, but probably
other callers, too.

Having requests in flight on the target node isn't a problem because the
target just gets new parents, but the call path of running requests
isn't modified. So we can just drop this assertion without a replacement.

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1711643
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
block.c