[PATCH] qemu-kvm/rbd: avoid opening eventfd twice and close it on exit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux