ret = 0;
}
} else {
- ret = -ENOSPC;;
+ ret = -ENOSPC;
}
}
end:
trace_luring_io_uring_submit(s, ret);
/* Prevent infinite loop if submission is refused */
if (ret <= 0) {
- if (ret == -EAGAIN) {
+ if (ret == -EAGAIN || ret == -EINTR) {
continue;
}
break;
static bool qemu_luring_poll_cb(void *opaque)
{
LuringState *s = opaque;
- struct io_uring_cqe *cqes;
- if (io_uring_peek_cqe(&s->ring, &cqes) == 0) {
- if (cqes) {
- luring_process_completions_and_submit(s);
- return true;
- }
+ if (io_uring_cq_ready(&s->ring)) {
+ luring_process_completions_and_submit(s);
+ return true;
}
return false;
void luring_cleanup(LuringState *s)
{
io_uring_queue_exit(&s->ring);
- g_free(s);
trace_luring_cleanup_state(s);
+ g_free(s);
}