diff options
author | Stefan Hajnoczi <stefanha@redhat.com> | 2017-05-12 10:39:19 -0400 |
---|---|---|
committer | Stefan Hajnoczi <stefanha@redhat.com> | 2017-05-12 10:39:23 -0400 |
commit | b54933eed532b10c8a1967d9f988262ccbb94ee2 (patch) | |
tree | 091671b3016466aef7664e5beb42de15d6b62ca8 /include/block | |
parent | 3753e255da8f6a654c3e7b650a2d27734bec15f9 (diff) | |
parent | 321d1dba8bef9676a77e9399484e3cd8bf2cf16a (diff) |
Merge tag 'block-pull-request' into staging
# gpg: Signature made Fri 12 May 2017 10:37:12 AM EDT
# gpg: using RSA key 0x9CA4ABB381AB73C8
# gpg: Good signature from "Stefan Hajnoczi <stefanha@redhat.com>"
# gpg: aka "Stefan Hajnoczi <stefanha@gmail.com>"
# Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8
* tag 'block-pull-request':
aio: add missing aio_notify() to aio_enable_external()
block: Simplify BDRV_BLOCK_RAW recursion
coroutine: remove GThread implementation
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'include/block')
-rw-r--r-- | include/block/aio.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/include/block/aio.h b/include/block/aio.h index 406e32305a..e9aeeaec94 100644 --- a/include/block/aio.h +++ b/include/block/aio.h @@ -454,8 +454,14 @@ static inline void aio_disable_external(AioContext *ctx) */ static inline void aio_enable_external(AioContext *ctx) { - assert(ctx->external_disable_cnt > 0); - atomic_dec(&ctx->external_disable_cnt); + int old; + + old = atomic_fetch_dec(&ctx->external_disable_cnt); + assert(old > 0); + if (old == 1) { + /* Kick event loop so it re-arms file descriptors */ + aio_notify(ctx); + } } /** |