Signed-off-by: Ketor Meng <d.ketor@gmail.com>
struct io_u *io_u;
rbd_completion_t completion;
int io_seen;
struct io_u *io_u;
rbd_completion_t completion;
int io_seen;
* a specific error. So we have to assume that it can't do
* partial completions.
*/
* a specific error. So we have to assume that it can't do
* partial completions.
*/
+ fri->io_complete = 1;
+
ret = rbd_aio_get_return_value(fri->completion);
if (ret < 0) {
io_u->error = ret;
ret = rbd_aio_get_return_value(fri->completion);
if (ret < 0) {
io_u->error = ret;
{
struct fio_rbd_iou *fri = io_u->engine_data;
{
struct fio_rbd_iou *fri = io_u->engine_data;
- if (rbd_aio_is_complete(fri->completion)) {
+ if (fri->io_complete) {
fri->io_seen = 1;
rbd_data->aio_events[*events] = io_u;
(*events)++;
fri->io_seen = 1;
rbd_data->aio_events[*events] = io_u;
(*events)++;
fio_ro_check(td, io_u);
fri->io_seen = 0;
fio_ro_check(td, io_u);
fri->io_seen = 0;
r = rbd_aio_create_completion(fri, _fio_rbd_finish_aiocb,
&fri->completion);
r = rbd_aio_create_completion(fri, _fio_rbd_finish_aiocb,
&fri->completion);