aboutsummaryrefslogtreecommitdiff
path: root/qobject
diff options
context:
space:
mode:
authorKevin Wolf <kwolf@redhat.com>2017-12-14 11:25:16 +0100
committerKevin Wolf <kwolf@redhat.com>2018-06-18 15:03:25 +0200
commitc13ad59f012cbbccb866a10477458e69bc868dbb (patch)
tree8e1e5c96e0f1f98c19e5419fda528d2c26c2e4e4 /qobject
parent7d40d9ef9dfb4948a857bfc6ec8408eed1d1d9e7 (diff)
block: Don't manually poll in bdrv_drain_all()
All involved nodes are already idle, we called bdrv_do_drain_begin() on them. The comment in the code suggested that this was not correct because the completion of a request on one node could spawn a new request on a different node (which might have been drained before, so we wouldn't drain the new request). In reality, new requests to different nodes aren't spawned out of nothing, but only in the context of a parent request, and they aren't submitted to random nodes, but only to child nodes. As long as we still poll for the completion of the parent request (which we do), draining each root node separately is good enough. Remove the additional polling code from bdrv_drain_all_begin() and replace it with an assertion that all nodes are already idle after we drained them separately. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'qobject')
0 files changed, 0 insertions, 0 deletions