block: all I/O should be completed before removing throttle timers.
commit632a77354317df32c7ff2d23424f0559c23fee51
authorZhengui <lizhengui@huawei.com>
Sat, 21 Oct 2017 05:34:00 +0000 (21 13:34 +0800)
committerStefan Hajnoczi <stefanha@redhat.com>
Mon, 13 Nov 2017 14:02:05 +0000 (13 14:02 +0000)
treee7e4ffa39703050dce5a67b90e5c8d83ef421c4e
parent508ba0f7e2092d3ca56e3f75e894d52d8b94818e
block: all I/O should be completed before removing throttle timers.

In blk_remove_bs, all I/O should be completed before removing throttle
timers. If there has inflight I/O, removing throttle timers here will
cause the inflight I/O never return.
This patch add bdrv_drained_begin before throttle_timers_detach_aio_context
to let all I/O completed before removing throttle timers.

[Moved declaration of bs as suggested by Alberto Garcia
<berto@igalia.com>.
--Stefan]

Signed-off-by: Zhengui <lizhengui@huawei.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Message-id: 1508564040-120700-1-git-send-email-lizhengui@huawei.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
block/block-backend.c