• Home
  • Raw
  • Download

Lines Matching refs:poll

806 	struct io_poll_iocb	poll;  member
835 struct io_poll_iocb poll; member
5554 return &req->poll; in io_poll_get_single()
5555 return &req->apoll->poll; in io_poll_get_single()
5567 static void io_init_poll_iocb(struct io_poll_iocb *poll, __poll_t events, in io_init_poll_iocb() argument
5570 poll->head = NULL; in io_init_poll_iocb()
5573 poll->events = events | IO_POLL_UNMASK; in io_init_poll_iocb()
5574 INIT_LIST_HEAD(&poll->wait.entry); in io_init_poll_iocb()
5575 init_waitqueue_func_entry(&poll->wait, wake_func); in io_init_poll_iocb()
5578 static inline void io_poll_remove_entry(struct io_poll_iocb *poll) in io_poll_remove_entry() argument
5580 struct wait_queue_head *head = smp_load_acquire(&poll->head); in io_poll_remove_entry()
5584 list_del_init(&poll->wait.entry); in io_poll_remove_entry()
5585 poll->head = NULL; in io_poll_remove_entry()
5592 struct io_poll_iocb *poll = io_poll_get_single(req); in io_poll_remove_entries() local
5611 io_poll_remove_entry(poll); in io_poll_remove_entries()
5628 struct io_poll_iocb *poll = io_poll_get_single(req); in io_poll_check_events() local
5662 struct poll_table_struct pt = { ._key = poll->events }; in io_poll_check_events()
5664 req->result = vfs_poll(req->file, &pt) & poll->events; in io_poll_check_events()
5668 if (req->result && !(poll->events & EPOLLONESHOT)) { in io_poll_check_events()
5669 __poll_t mask = mangle_poll(req->result & poll->events); in io_poll_check_events()
5707 req->result = mangle_poll(req->result & req->poll.events); in io_poll_task_func()
5770 struct io_poll_iocb *poll = container_of(wait, struct io_poll_iocb, in io_poll_wake() local
5786 list_del_init(&poll->wait.entry); in io_poll_wake()
5794 smp_store_release(&poll->head, NULL); in io_poll_wake()
5799 if (mask && !(mask & poll->events)) in io_poll_wake()
5809 poll->events |= EPOLLONESHOT; in io_poll_wake()
5816 static void __io_queue_proc(struct io_poll_iocb *poll, struct io_poll_table *pt, in __io_queue_proc() argument
5828 struct io_poll_iocb *first = poll; in __io_queue_proc()
5841 poll = kmalloc(sizeof(*poll), GFP_ATOMIC); in __io_queue_proc()
5842 if (!poll) { in __io_queue_proc()
5846 io_init_poll_iocb(poll, first->events, first->wait.func); in __io_queue_proc()
5847 *poll_ptr = poll; in __io_queue_proc()
5851 poll->head = head; in __io_queue_proc()
5852 poll->wait.private = req; in __io_queue_proc()
5854 if (poll->events & EPOLLEXCLUSIVE) in __io_queue_proc()
5855 add_wait_queue_exclusive(head, &poll->wait); in __io_queue_proc()
5857 add_wait_queue(head, &poll->wait); in __io_queue_proc()
5865 __io_queue_proc(&pt->req->poll, pt, head, in io_poll_queue_proc()
5870 struct io_poll_iocb *poll, in __io_arm_poll_handler() argument
5876 io_init_poll_iocb(poll, mask, io_poll_wake); in __io_arm_poll_handler()
5877 poll->file = req->file; in __io_arm_poll_handler()
5878 poll->wait.private = req; in __io_arm_poll_handler()
5890 mask = vfs_poll(req->file, &ipt->pt) & poll->events; in __io_arm_poll_handler()
5892 if (mask && (poll->events & EPOLLONESHOT)) { in __io_arm_poll_handler()
5911 poll->events |= EPOLLONESHOT; in __io_arm_poll_handler()
5933 __io_queue_proc(&apoll->poll, pt, head, &apoll->double_poll); in io_async_queue_proc()
5978 if (unlikely(!--apoll->poll.retries)) { in io_arm_poll_handler()
5986 apoll->poll.retries = APOLL_MAX_RETRY; in io_arm_poll_handler()
5993 ret = __io_arm_poll_handler(req, &apoll->poll, &ipt, mask); in io_arm_poll_handler()
5998 mask, apoll->poll.events); in io_arm_poll_handler()
6119 struct io_poll_iocb *poll = &req->poll; in io_poll_add_prep() local
6131 poll->events = io_poll_parse_events(sqe, flags); in io_poll_add_prep()
6137 struct io_poll_iocb *poll = &req->poll; in io_poll_add() local
6143 ret = __io_arm_poll_handler(req, &req->poll, &ipt, poll->events); in io_poll_add()
6172 preq->poll.events &= ~0xffff; in io_poll_update()
6173 preq->poll.events |= req->poll_update.events & 0xffff; in io_poll_update()
6174 preq->poll.events |= IO_POLL_UNMASK; in io_poll_update()
10442 .poll = io_uring_poll,