]> Git Repo - qemu.git/commit - block.c
block: Don't poll in parent drain callbacks
authorKevin Wolf <[email protected]>
Fri, 23 Mar 2018 14:57:20 +0000 (15:57 +0100)
committerKevin Wolf <[email protected]>
Mon, 18 Jun 2018 13:03:25 +0000 (15:03 +0200)
commitdcf94a23b1add0f856db51e9ff5ba0774e096076
tree658311bddefe5487845018e8230a03c4d5d6435b
parentebd31837618cdc7bda83090773dcdd87475d55b7
block: Don't poll in parent drain callbacks

bdrv_do_drained_begin() is only safe if we have a single
BDRV_POLL_WHILE() after quiescing all affected nodes. We cannot allow
that parent callbacks introduce a nested polling loop that could cause
graph changes while we're traversing the graph.

Split off bdrv_do_drained_begin_quiesce(), which only quiesces a single
node without waiting for its requests to complete. These requests will
be waited for in the BDRV_POLL_WHILE() call down the call chain.

Signed-off-by: Kevin Wolf <[email protected]>
block.c
block/io.c
include/block/block.h
This page took 0.025733 seconds and 4 git commands to generate.