On Thu, 04/20 14:00, Paolo Bonzini wrote: > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > block/io.c | 3 ++- > block/nfs.c | 4 +++- > block/sheepdog.c | 3 ++- > include/block/block.h | 5 +++-- > include/block/block_int.h | 4 ++-- > 5 files changed, 12 insertions(+), 7 deletions(-) > > diff --git a/block/io.c b/block/io.c > index 869322a..3b2ede9 100644 > --- a/block/io.c > +++ b/block/io.c > @@ -501,7 +501,8 @@ static void dummy_bh_cb(void *opaque) > > void bdrv_wakeup(BlockDriverState *bs) > { > - if (bs->wakeup) { > + /* The barrier (or an atomic op) is in the caller. */
Why not add a barrier here so that callers don't need to worry about that? > + if (atomic_read(&bs->wakeup)) { > aio_bh_schedule_oneshot(qemu_get_aio_context(), dummy_bh_cb, NULL); > } > } Fam