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 <bharata@linux.vnet.ibm.com> for catching a build failure with CONFIG_GLUSTERFS_DISCARD, which has been fixed. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
0d1460226f
commit
372835fbc3
|
@ -32,7 +32,6 @@ typedef struct BDRVGlusterState {
|
||||||
struct glfs *glfs;
|
struct glfs *glfs;
|
||||||
int fds[2];
|
int fds[2];
|
||||||
struct glfs_fd *fd;
|
struct glfs_fd *fd;
|
||||||
int qemu_aio_count;
|
|
||||||
int event_reader_pos;
|
int event_reader_pos;
|
||||||
GlusterAIOCB *event_acb;
|
GlusterAIOCB *event_acb;
|
||||||
} BDRVGlusterState;
|
} BDRVGlusterState;
|
||||||
|
@ -247,7 +246,6 @@ static void qemu_gluster_complete_aio(GlusterAIOCB *acb, BDRVGlusterState *s)
|
||||||
ret = -EIO; /* Partial read/write - fail it */
|
ret = -EIO; /* Partial read/write - fail it */
|
||||||
}
|
}
|
||||||
|
|
||||||
s->qemu_aio_count--;
|
|
||||||
qemu_aio_release(acb);
|
qemu_aio_release(acb);
|
||||||
cb(opaque, ret);
|
cb(opaque, ret);
|
||||||
if (finished) {
|
if (finished) {
|
||||||
|
@ -275,13 +273,6 @@ static void qemu_gluster_aio_event_reader(void *opaque)
|
||||||
} while (ret < 0 && errno == EINTR);
|
} 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 */
|
/* TODO Convert to fine grained options */
|
||||||
static QemuOptsList runtime_opts = {
|
static QemuOptsList runtime_opts = {
|
||||||
.name = "gluster",
|
.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);
|
fcntl(s->fds[GLUSTER_FD_READ], F_SETFL, O_NONBLOCK);
|
||||||
qemu_aio_set_fd_handler(s->fds[GLUSTER_FD_READ],
|
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:
|
out:
|
||||||
qemu_opts_del(opts);
|
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 */
|
qemu_mutex_lock_iothread(); /* We are in gluster thread context */
|
||||||
acb->common.cb(acb->common.opaque, -EIO);
|
acb->common.cb(acb->common.opaque, -EIO);
|
||||||
qemu_aio_release(acb);
|
qemu_aio_release(acb);
|
||||||
s->qemu_aio_count--;
|
|
||||||
close(s->fds[GLUSTER_FD_READ]);
|
close(s->fds[GLUSTER_FD_READ]);
|
||||||
close(s->fds[GLUSTER_FD_WRITE]);
|
close(s->fds[GLUSTER_FD_WRITE]);
|
||||||
qemu_aio_set_fd_handler(s->fds[GLUSTER_FD_READ], NULL, NULL, NULL,
|
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;
|
offset = sector_num * BDRV_SECTOR_SIZE;
|
||||||
size = nb_sectors * BDRV_SECTOR_SIZE;
|
size = nb_sectors * BDRV_SECTOR_SIZE;
|
||||||
s->qemu_aio_count++;
|
|
||||||
|
|
||||||
acb = qemu_aio_get(&gluster_aiocb_info, bs, cb, opaque);
|
acb = qemu_aio_get(&gluster_aiocb_info, bs, cb, opaque);
|
||||||
acb->size = size;
|
acb->size = size;
|
||||||
|
@ -488,7 +477,6 @@ static BlockDriverAIOCB *qemu_gluster_aio_rw(BlockDriverState *bs,
|
||||||
return &acb->common;
|
return &acb->common;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
s->qemu_aio_count--;
|
|
||||||
qemu_aio_release(acb);
|
qemu_aio_release(acb);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -531,7 +519,6 @@ static BlockDriverAIOCB *qemu_gluster_aio_flush(BlockDriverState *bs,
|
||||||
acb->size = 0;
|
acb->size = 0;
|
||||||
acb->ret = 0;
|
acb->ret = 0;
|
||||||
acb->finished = NULL;
|
acb->finished = NULL;
|
||||||
s->qemu_aio_count++;
|
|
||||||
|
|
||||||
ret = glfs_fsync_async(s->fd, &gluster_finish_aiocb, acb);
|
ret = glfs_fsync_async(s->fd, &gluster_finish_aiocb, acb);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
|
@ -540,7 +527,6 @@ static BlockDriverAIOCB *qemu_gluster_aio_flush(BlockDriverState *bs,
|
||||||
return &acb->common;
|
return &acb->common;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
s->qemu_aio_count--;
|
|
||||||
qemu_aio_release(acb);
|
qemu_aio_release(acb);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -563,7 +549,6 @@ static BlockDriverAIOCB *qemu_gluster_aio_discard(BlockDriverState *bs,
|
||||||
acb->size = 0;
|
acb->size = 0;
|
||||||
acb->ret = 0;
|
acb->ret = 0;
|
||||||
acb->finished = NULL;
|
acb->finished = NULL;
|
||||||
s->qemu_aio_count++;
|
|
||||||
|
|
||||||
ret = glfs_discard_async(s->fd, offset, size, &gluster_finish_aiocb, acb);
|
ret = glfs_discard_async(s->fd, offset, size, &gluster_finish_aiocb, acb);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
|
@ -572,7 +557,6 @@ static BlockDriverAIOCB *qemu_gluster_aio_discard(BlockDriverState *bs,
|
||||||
return &acb->common;
|
return &acb->common;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
s->qemu_aio_count--;
|
|
||||||
qemu_aio_release(acb);
|
qemu_aio_release(acb);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue