qemu-kvm/rbd: avoid opening eventfd twice and close it on exit
PATCH 1/1 qemu-kvm/rbd: avoid opening eventfd twice and close it on exit
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(-)
block/rbd.c +3 -9
@@ -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);
Signature · 1 line
1.6.5.2