On Thu, 08/06 15:36, Paolo Bonzini wrote: > This will be used for AioHandlers too. There is going to be little > or no contention, so it is better to reuse the same lock. > > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
Reviewed-by: Fam Zheng <f...@redhat.com> > --- > async.c | 16 ++++++++-------- > include/block/aio.h | 2 +- > 2 files changed, 9 insertions(+), 9 deletions(-) > > diff --git a/async.c b/async.c > index f992914..7e97614 100644 > --- a/async.c > +++ b/async.c > @@ -50,12 +50,12 @@ QEMUBH *aio_bh_new(AioContext *ctx, QEMUBHFunc *cb, void > *opaque) > .cb = cb, > .opaque = opaque, > }; > - qemu_mutex_lock(&ctx->bh_lock); > + qemu_mutex_lock(&ctx->list_lock); > bh->next = ctx->first_bh; > /* Make sure that the members are ready before putting bh into list */ > smp_wmb(); > ctx->first_bh = bh; > - qemu_mutex_unlock(&ctx->bh_lock); > + qemu_mutex_unlock(&ctx->list_lock); > return bh; > } > > @@ -92,7 +92,7 @@ int aio_bh_poll(AioContext *ctx) > > /* remove deleted bhs */ > if (!ctx->walking_bh) { > - qemu_mutex_lock(&ctx->bh_lock); > + qemu_mutex_lock(&ctx->list_lock); > bhp = &ctx->first_bh; > while (*bhp) { > bh = *bhp; > @@ -103,7 +103,7 @@ int aio_bh_poll(AioContext *ctx) > bhp = &bh->next; > } > } > - qemu_mutex_unlock(&ctx->bh_lock); > + qemu_mutex_unlock(&ctx->list_lock); > } > > return ret; > @@ -234,7 +234,7 @@ aio_ctx_finalize(GSource *source) > > thread_pool_free(ctx->thread_pool); > > - qemu_mutex_lock(&ctx->bh_lock); > + qemu_mutex_lock(&ctx->list_lock); > while (ctx->first_bh) { > QEMUBH *next = ctx->first_bh->next; > > @@ -244,12 +244,12 @@ aio_ctx_finalize(GSource *source) > g_free(ctx->first_bh); > ctx->first_bh = next; > } > - qemu_mutex_unlock(&ctx->bh_lock); > + qemu_mutex_unlock(&ctx->list_lock); > > aio_set_event_notifier(ctx, &ctx->notifier, NULL); > event_notifier_cleanup(&ctx->notifier); > rfifolock_destroy(&ctx->lock); > - qemu_mutex_destroy(&ctx->bh_lock); > + qemu_mutex_destroy(&ctx->list_lock); > timerlistgroup_deinit(&ctx->tlg); > } > > @@ -318,7 +318,7 @@ AioContext *aio_context_new(Error **errp) > (EventNotifierHandler *) > event_notifier_dummy_cb); > ctx->thread_pool = NULL; > - qemu_mutex_init(&ctx->bh_lock); > + qemu_mutex_init(&ctx->list_lock); > rfifolock_init(&ctx->lock, NULL, NULL); > timerlistgroup_init(&ctx->tlg, aio_timerlist_notify, ctx); > > diff --git a/include/block/aio.h b/include/block/aio.h > index 9dd32e0..026f6c1 100644 > --- a/include/block/aio.h > +++ b/include/block/aio.h > @@ -89,7 +89,7 @@ struct AioContext { > uint32_t notify_me; > > /* lock to protect between bh's adders and deleter */ > - QemuMutex bh_lock; > + QemuMutex list_lock; > > /* Anchor of the list of Bottom Halves belonging to the context */ > struct QEMUBH *first_bh; > -- > 2.4.3 > > >