On Wed, May 11, 2016 at 03:24:21PM +0200, Kevin Wolf wrote:
> So far, bdrv_parent_drained_begin/end() was called for the duration of
> the actual bdrv_drain() at the beginning of a drained section, but we
> really should keep parents quiesced until the end of the drained
> section.
> 
> This does not actually change behaviour at this point because the only
> user of the .drained_begin/end BdrvChildRole callback is I/O throttling,
> which already doesn't send any new requests after flushing its queue in
> .drained_being. The patch merely removes a trap for future users.

s/being/begin/

> 
> Reported-by: Stefan Hajnoczi <stefa...@redhat.com>
> Signed-off-by: Kevin Wolf <kw...@redhat.com>
> ---
>  block/io.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/block/io.c b/block/io.c
> index 7c213ec..23abbc5 100644
> --- a/block/io.c
> +++ b/block/io.c
> @@ -2749,11 +2749,14 @@ void bdrv_drained_begin(BlockDriverState *bs)
>      if (!bs->quiesce_counter++) {
>          aio_disable_external(bdrv_get_aio_context(bs));
>      }
> +    bdrv_parent_drained_begin(bs);
>      bdrv_drain(bs);
>  }
>  
>  void bdrv_drained_end(BlockDriverState *bs)
>  {
> +    bdrv_parent_drained_end(bs);
> +
>      assert(bs->quiesce_counter > 0);
>      if (--bs->quiesce_counter > 0) {
>          return;
> -- 
> 1.8.3.1
> 

Attachment: signature.asc
Description: PGP signature

Reply via email to