Re: [Qemu-devel] [PULL 08/18] block/gluster: drop qemu_gluster_aio_flush_cb()
On Sat, Aug 17, 2013 at 10:52:34AM +0530, Bharata B Rao wrote: From: Stefan Hajnoczi stefa...@redhat.com Since .io_flush() is no longer called we do not need qemu_gluster_aio_flush_cb() anymore. It turns out that qemu_aio_count is unused now and can be dropped. Signed-off-by: Stefan Hajnoczi stefa...@redhat.com Tested-by: Bharata B Rao bhar...@linux.vnet.ibm.com Tested GlusterFS backend, but it needed the below fix: -- Thanks, I have fixed my development machine so block/gluster.c is always built. Since this pull request hasn't been merged yet I am resending with your fix squashed in. Stefan
[Qemu-devel] [PULL 08/18] block/gluster: drop qemu_gluster_aio_flush_cb()
Since .io_flush() is no longer called we do not need qemu_gluster_aio_flush_cb() anymore. It turns out that qemu_aio_count is unused now and can be dropped. Thanks to Bharata B Rao bhar...@linux.vnet.ibm.com for catching a build failure with CONFIG_GLUSTERFS_DISCARD, which has been fixed. Signed-off-by: Stefan Hajnoczi stefa...@redhat.com --- block/gluster.c | 18 +- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/block/gluster.c b/block/gluster.c index 645b7f1..3cb7500 100644 --- a/block/gluster.c +++ b/block/gluster.c @@ -32,7 +32,6 @@ typedef struct BDRVGlusterState { struct glfs *glfs; int fds[2]; struct glfs_fd *fd; -int qemu_aio_count; int event_reader_pos; GlusterAIOCB *event_acb; } BDRVGlusterState; @@ -247,7 +246,6 @@ static void qemu_gluster_complete_aio(GlusterAIOCB *acb, BDRVGlusterState *s) ret = -EIO; /* Partial read/write - fail it */ } -s-qemu_aio_count--; qemu_aio_release(acb); cb(opaque, ret); if (finished) { @@ -275,13 +273,6 @@ static void qemu_gluster_aio_event_reader(void *opaque) } while (ret 0 errno == EINTR); } -static int qemu_gluster_aio_flush_cb(void *opaque) -{ -BDRVGlusterState *s = opaque; - -return (s-qemu_aio_count 0); -} - /* TODO Convert to fine grained options */ static QemuOptsList runtime_opts = { .name = gluster, @@ -348,7 +339,7 @@ static int qemu_gluster_open(BlockDriverState *bs, QDict *options, } fcntl(s-fds[GLUSTER_FD_READ], F_SETFL, O_NONBLOCK); qemu_aio_set_fd_handler(s-fds[GLUSTER_FD_READ], -qemu_gluster_aio_event_reader, NULL, qemu_gluster_aio_flush_cb, s); +qemu_gluster_aio_event_reader, NULL, NULL, s); out: qemu_opts_del(opts); @@ -445,7 +436,6 @@ static void gluster_finish_aiocb(struct glfs_fd *fd, ssize_t ret, void *arg) qemu_mutex_lock_iothread(); /* We are in gluster thread context */ acb-common.cb(acb-common.opaque, -EIO); qemu_aio_release(acb); -s-qemu_aio_count--; close(s-fds[GLUSTER_FD_READ]); close(s-fds[GLUSTER_FD_WRITE]); qemu_aio_set_fd_handler(s-fds[GLUSTER_FD_READ], NULL, NULL, NULL, @@ -467,7 +457,6 @@ static BlockDriverAIOCB *qemu_gluster_aio_rw(BlockDriverState *bs, offset = sector_num * BDRV_SECTOR_SIZE; size = nb_sectors * BDRV_SECTOR_SIZE; -s-qemu_aio_count++; acb = qemu_aio_get(gluster_aiocb_info, bs, cb, opaque); acb-size = size; @@ -488,7 +477,6 @@ static BlockDriverAIOCB *qemu_gluster_aio_rw(BlockDriverState *bs, return acb-common; out: -s-qemu_aio_count--; qemu_aio_release(acb); return NULL; } @@ -531,7 +519,6 @@ static BlockDriverAIOCB *qemu_gluster_aio_flush(BlockDriverState *bs, acb-size = 0; acb-ret = 0; acb-finished = NULL; -s-qemu_aio_count++; ret = glfs_fsync_async(s-fd, gluster_finish_aiocb, acb); if (ret 0) { @@ -540,7 +527,6 @@ static BlockDriverAIOCB *qemu_gluster_aio_flush(BlockDriverState *bs, return acb-common; out: -s-qemu_aio_count--; qemu_aio_release(acb); return NULL; } @@ -563,7 +549,6 @@ static BlockDriverAIOCB *qemu_gluster_aio_discard(BlockDriverState *bs, acb-size = 0; acb-ret = 0; acb-finished = NULL; -s-qemu_aio_count++; ret = glfs_discard_async(s-fd, offset, size, gluster_finish_aiocb, acb); if (ret 0) { @@ -572,7 +557,6 @@ static BlockDriverAIOCB *qemu_gluster_aio_discard(BlockDriverState *bs, return acb-common; out: -s-qemu_aio_count--; qemu_aio_release(acb); return NULL; } -- 1.8.3.1
[Qemu-devel] [PULL 08/18] block/gluster: drop qemu_gluster_aio_flush_cb()
Since .io_flush() is no longer called we do not need qemu_gluster_aio_flush_cb() anymore. It turns out that qemu_aio_count is unused now and can be dropped. Signed-off-by: Stefan Hajnoczi stefa...@redhat.com --- block/gluster.c | 16 +--- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/block/gluster.c b/block/gluster.c index 645b7f1..fa0b9e0 100644 --- a/block/gluster.c +++ b/block/gluster.c @@ -32,7 +32,6 @@ typedef struct BDRVGlusterState { struct glfs *glfs; int fds[2]; struct glfs_fd *fd; -int qemu_aio_count; int event_reader_pos; GlusterAIOCB *event_acb; } BDRVGlusterState; @@ -247,7 +246,6 @@ static void qemu_gluster_complete_aio(GlusterAIOCB *acb, BDRVGlusterState *s) ret = -EIO; /* Partial read/write - fail it */ } -s-qemu_aio_count--; qemu_aio_release(acb); cb(opaque, ret); if (finished) { @@ -275,13 +273,6 @@ static void qemu_gluster_aio_event_reader(void *opaque) } while (ret 0 errno == EINTR); } -static int qemu_gluster_aio_flush_cb(void *opaque) -{ -BDRVGlusterState *s = opaque; - -return (s-qemu_aio_count 0); -} - /* TODO Convert to fine grained options */ static QemuOptsList runtime_opts = { .name = gluster, @@ -348,7 +339,7 @@ static int qemu_gluster_open(BlockDriverState *bs, QDict *options, } fcntl(s-fds[GLUSTER_FD_READ], F_SETFL, O_NONBLOCK); qemu_aio_set_fd_handler(s-fds[GLUSTER_FD_READ], -qemu_gluster_aio_event_reader, NULL, qemu_gluster_aio_flush_cb, s); +qemu_gluster_aio_event_reader, NULL, NULL, s); out: qemu_opts_del(opts); @@ -445,7 +436,6 @@ static void gluster_finish_aiocb(struct glfs_fd *fd, ssize_t ret, void *arg) qemu_mutex_lock_iothread(); /* We are in gluster thread context */ acb-common.cb(acb-common.opaque, -EIO); qemu_aio_release(acb); -s-qemu_aio_count--; close(s-fds[GLUSTER_FD_READ]); close(s-fds[GLUSTER_FD_WRITE]); qemu_aio_set_fd_handler(s-fds[GLUSTER_FD_READ], NULL, NULL, NULL, @@ -467,7 +457,6 @@ static BlockDriverAIOCB *qemu_gluster_aio_rw(BlockDriverState *bs, offset = sector_num * BDRV_SECTOR_SIZE; size = nb_sectors * BDRV_SECTOR_SIZE; -s-qemu_aio_count++; acb = qemu_aio_get(gluster_aiocb_info, bs, cb, opaque); acb-size = size; @@ -488,7 +477,6 @@ static BlockDriverAIOCB *qemu_gluster_aio_rw(BlockDriverState *bs, return acb-common; out: -s-qemu_aio_count--; qemu_aio_release(acb); return NULL; } @@ -531,7 +519,6 @@ static BlockDriverAIOCB *qemu_gluster_aio_flush(BlockDriverState *bs, acb-size = 0; acb-ret = 0; acb-finished = NULL; -s-qemu_aio_count++; ret = glfs_fsync_async(s-fd, gluster_finish_aiocb, acb); if (ret 0) { @@ -540,7 +527,6 @@ static BlockDriverAIOCB *qemu_gluster_aio_flush(BlockDriverState *bs, return acb-common; out: -s-qemu_aio_count--; qemu_aio_release(acb); return NULL; } -- 1.8.3.1
Re: [Qemu-devel] [PULL 08/18] block/gluster: drop qemu_gluster_aio_flush_cb()
From: Stefan Hajnoczi stefa...@redhat.com Since .io_flush() is no longer called we do not need qemu_gluster_aio_flush_cb() anymore. It turns out that qemu_aio_count is unused now and can be dropped. Signed-off-by: Stefan Hajnoczi stefa...@redhat.com Tested-by: Bharata B Rao bhar...@linux.vnet.ibm.com Tested GlusterFS backend, but it needed the below fix: -- gluster: Remove the use of qemu_aio_count from gluster discard qemu_aio_count is no longer used and hence remove its usage from qemu_gluster_aio_discard() Signed-off-by: Bharata B Rao bhar...@linux.vnet.ibm.com --- block/gluster.c |2 -- 1 file changed, 2 deletions(-) diff --git a/block/gluster.c b/block/gluster.c index fbdbe97..46f36f8 100644 --- a/block/gluster.c +++ b/block/gluster.c @@ -548,7 +548,6 @@ static BlockDriverAIOCB *qemu_gluster_aio_discard(BlockDriverState *bs, acb-size = 0; acb-ret = 0; acb-finished = NULL; -s-qemu_aio_count++; ret = glfs_discard_async(s-fd, offset, size, gluster_finish_aiocb, acb); if (ret 0) { @@ -557,7 +556,6 @@ static BlockDriverAIOCB *qemu_gluster_aio_discard(BlockDriverState *bs, return acb-common; out: -s-qemu_aio_count--; qemu_aio_release(acb); return NULL; }