diff mbox

[3/4] io: add locking constraints check into bdrv_drain to ensure locking

Message ID 1446044465-19312-4-git-send-email-den@openvz.org
State New
Headers show

Commit Message

Denis V. Lunev Oct. 28, 2015, 3:01 p.m. UTC
as described in the comment of the function

Signed-off-by: Denis V. Lunev <den@openvz.org>
CC: Stefan Hajnoczi <stefanha@redhat.com>
CC: Paolo Bonzini <pbonzini@redhat.com>
---
 block/io.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Stefan Hajnoczi Oct. 30, 2015, 3:43 p.m. UTC | #1
On Wed, Oct 28, 2015 at 06:01:04PM +0300, Denis V. Lunev wrote:
> as described in the comment of the function
> 
> Signed-off-by: Denis V. Lunev <den@openvz.org>
> CC: Stefan Hajnoczi <stefanha@redhat.com>
> CC: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  block/io.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/block/io.c b/block/io.c
> index 5ac6256..2e98d45 100644
> --- a/block/io.c
> +++ b/block/io.c
> @@ -247,12 +247,15 @@ bool bdrv_requests_pending(BlockDriverState *bs)
>  void bdrv_drain(BlockDriverState *bs)
>  {
>      bool busy = true;
> +    AioContext *aio_context = bdrv_get_aio_context(bs);
> +
> +    assert(aio_context_is_locked(aio_context));

Cool, thanks!  This is a useful assertion to have.
diff mbox

Patch

diff --git a/block/io.c b/block/io.c
index 5ac6256..2e98d45 100644
--- a/block/io.c
+++ b/block/io.c
@@ -247,12 +247,15 @@  bool bdrv_requests_pending(BlockDriverState *bs)
 void bdrv_drain(BlockDriverState *bs)
 {
     bool busy = true;
+    AioContext *aio_context = bdrv_get_aio_context(bs);
+
+    assert(aio_context_is_locked(aio_context));
 
     while (busy) {
         /* Keep iterating */
          bdrv_flush_io_queue(bs);
          busy = bdrv_requests_pending(bs);
-         busy |= aio_poll(bdrv_get_aio_context(bs), busy);
+         busy |= aio_poll(aio_context, busy);
     }
 }