This patch removes the second call of eventfd/qemu_aio_set_fd_handler and closes the filediscriptor on exit. With this patch and the thread locking I'm able to run qemu-iotest without any problem. Christian --- block/rbd.c | 12 +++--------- 1 files changed, 3 insertions(+), 9 deletions(-) diff --git a/block/rbd.c b/block/rbd.c index 7a77072..9339dab 100644 --- a/block/rbd.c +++ b/block/rbd.c @@ -513,15 +513,6 @@ static int rbd_open(BlockDriverState *bs, const char *filename, int flags) qemu_free(hbuf); - s->efd = eventfd(0, 0); - if (s->efd < 0) { - error_report("error opening eventfd"); - goto failed; - } - fcntl(s->efd, F_SETFL, O_NONBLOCK); - qemu_aio_set_fd_handler(s->efd, rbd_aio_completion_cb, NULL, - rbd_aio_flush_cb, NULL, s); - return 0; failed: @@ -538,6 +529,9 @@ static void rbd_close(BlockDriverState *bs) { BDRVRBDState *s = bs->opaque; + close(s->efd); + qemu_aio_set_fd_handler(s->efd, NULL , NULL, NULL, NULL, NULL); + // The following do not exist in qemu: // qemu_cond_destroy(s->queue_threshold); // qemu_mutex_destroy(s->queue_mutex); -- 1.6.5.2 -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html