Lines Matching refs:lio

275 struct lio {  struct
300 struct lio *lio = queue->tio_data; in tapdisk_lio_destroy_aio() argument
302 if (lio->event_fd >= 0) { in tapdisk_lio_destroy_aio()
303 close(lio->event_fd); in tapdisk_lio_destroy_aio()
304 lio->event_fd = -1; in tapdisk_lio_destroy_aio()
307 if (lio->aio_ctx) { in tapdisk_lio_destroy_aio()
308 io_destroy(lio->aio_ctx); in tapdisk_lio_destroy_aio()
309 lio->aio_ctx = 0; in tapdisk_lio_destroy_aio()
316 struct lio *lio = queue->tio_data; in __lio_setup_aio_poll() local
319 lio->aio_ctx = REQUEST_ASYNC_FD; in __lio_setup_aio_poll()
321 fd = io_setup(qlen, &lio->aio_ctx); in __lio_setup_aio_poll()
323 lio->aio_ctx = 0; in __lio_setup_aio_poll()
332 lio->event_fd = fd; in __lio_setup_aio_poll()
347 struct lio *lio = queue->tio_data; in __lio_setup_aio_eventfd() local
350 err = io_setup(qlen, &lio->aio_ctx); in __lio_setup_aio_eventfd()
352 lio->aio_ctx = 0; in __lio_setup_aio_eventfd()
356 lio->event_fd = tapdisk_sys_eventfd(0); in __lio_setup_aio_eventfd()
357 if (lio->event_fd < 0) in __lio_setup_aio_eventfd()
360 lio->flags |= LIO_FLAG_EVENTFD; in __lio_setup_aio_eventfd()
368 struct lio *lio = queue->tio_data; in tapdisk_lio_setup_aio() local
371 lio->aio_ctx = 0; in tapdisk_lio_setup_aio()
372 lio->event_fd = -1; in tapdisk_lio_setup_aio()
402 struct lio *lio = queue->tio_data; in tapdisk_lio_destroy() local
404 if (!lio) in tapdisk_lio_destroy()
407 if (lio->event_id >= 0) { in tapdisk_lio_destroy()
408 tapdisk_server_unregister_event(lio->event_id); in tapdisk_lio_destroy()
409 lio->event_id = -1; in tapdisk_lio_destroy()
414 if (lio->aio_events) { in tapdisk_lio_destroy()
415 free(lio->aio_events); in tapdisk_lio_destroy()
416 lio->aio_events = NULL; in tapdisk_lio_destroy()
423 struct lio *lio = queue->tio_data; in tapdisk_lio_set_eventfd() local
426 if (lio->flags & LIO_FLAG_EVENTFD) in tapdisk_lio_set_eventfd()
428 __io_set_eventfd(iocbs[i], lio->event_fd); in tapdisk_lio_set_eventfd()
434 struct lio *lio = queue->tio_data; in tapdisk_lio_ack_event() local
437 if (lio->flags & LIO_FLAG_EVENTFD) in tapdisk_lio_ack_event()
438 read_exact(lio->event_fd, &val, sizeof(val)); in tapdisk_lio_ack_event()
445 struct lio *lio; in tapdisk_lio_event() local
453 lio = queue->tio_data; in tapdisk_lio_event()
454 ret = io_getevents(lio->aio_ctx, 0, in tapdisk_lio_event()
455 queue->size, lio->aio_events, NULL); in tapdisk_lio_event()
456 split = io_split(&queue->opioctx, lio->aio_events, ret); in tapdisk_lio_event()
457 tapdisk_filter_events(queue->filter, lio->aio_events, split); in tapdisk_lio_event()
464 for (i = split, ep = lio->aio_events; i-- > 0; ep++) { in tapdisk_lio_event()
476 struct lio *lio = queue->tio_data; in tapdisk_lio_setup() local
480 lio->event_id = -1; in tapdisk_lio_setup()
486 lio->event_id = in tapdisk_lio_setup()
488 lio->event_fd, 0, in tapdisk_lio_setup()
491 err = lio->event_id; in tapdisk_lio_setup()
495 lio->aio_events = calloc(qlen, sizeof(struct io_event)); in tapdisk_lio_setup()
496 if (!lio->aio_events) { in tapdisk_lio_setup()
511 struct lio *lio = queue->tio_data; in tapdisk_lio_submit() local
520 submitted = io_submit(lio->aio_ctx, merged, queue->iocbs); in tapdisk_lio_submit()
544 .data_size = sizeof(struct lio),