On 12/05/2017 08:54 AM, Kevin Wolf wrote: > This change separates bdrv_drain_invoke(), which calls the BlockDriver > drain callbacks, from bdrv_drain_recurse(). Instead, the function > performs its own recursion now. > > One reason for this is that bdrv_drain_recurse() can be called multiple > times bdrv_drain_recurse(),
Doesn't read right. Should the second instance be changed to 'by itself', or is the correct meaning something else? > but the callbacks may only be called once. > The separation is necessary to fix this bug. > > The other reasons is that we intend to go to model where we call all s/reasons/reason/ > driver callbacks first, and only then start polling. This is not fully > achieved yet with this patch, as bdrv_drain_invoke() contains a > BDRV_POLL_WHILE() loop for the block driver callbacks which can still > call callbacks for any unrelated event. It's a step in this direction > anyway. > > Cc: qemu-sta...@nongnu.org > Signed-off-by: Kevin Wolf <kw...@redhat.com> > --- > block/io.c | 14 +++++++++++--- > 1 file changed, 11 insertions(+), 3 deletions(-) > -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org
signature.asc
Description: OpenPGP digital signature