Lines Matching refs:waiter
131 struct rwsem_waiter *waiter, *tmp; in __rwsem_mark_wake() local
138 waiter = list_first_entry(&sem->wait_list, struct rwsem_waiter, list); in __rwsem_mark_wake()
140 if (waiter->type == RWSEM_WAITING_FOR_WRITE) { in __rwsem_mark_wake()
149 wake_q_add(wake_q, waiter->task); in __rwsem_mark_wake()
192 list_for_each_entry_safe(waiter, tmp, &sem->wait_list, list) { in __rwsem_mark_wake()
195 if (waiter->type == RWSEM_WAITING_FOR_WRITE) in __rwsem_mark_wake()
199 tsk = waiter->task; in __rwsem_mark_wake()
202 list_del(&waiter->list); in __rwsem_mark_wake()
209 smp_store_release(&waiter->task, NULL); in __rwsem_mark_wake()
229 struct rwsem_waiter waiter; in __rwsem_down_read_failed_common() local
232 waiter.task = current; in __rwsem_down_read_failed_common()
233 waiter.type = RWSEM_WAITING_FOR_READ; in __rwsem_down_read_failed_common()
238 list_add_tail(&waiter.list, &sem->wait_list); in __rwsem_down_read_failed_common()
260 if (!waiter.task) in __rwsem_down_read_failed_common()
264 if (waiter.task) in __rwsem_down_read_failed_common()
275 list_del(&waiter.list); in __rwsem_down_read_failed_common()
499 struct rwsem_waiter waiter; in __rwsem_down_write_failed_common() local
514 waiter.task = current; in __rwsem_down_write_failed_common()
515 waiter.type = RWSEM_WAITING_FOR_WRITE; in __rwsem_down_write_failed_common()
523 list_add_tail(&waiter.list, &sem->wait_list); in __rwsem_down_write_failed_common()
573 list_del(&waiter.list); in __rwsem_down_write_failed_common()
581 list_del(&waiter.list); in __rwsem_down_write_failed_common()