Lines Matching refs:waiter
124 struct rwsem_waiter *waiter; in __rwsem_do_wake() local
129 waiter = list_entry(sem->wait_list.next, struct rwsem_waiter, list); in __rwsem_do_wake()
130 if (waiter->type == RWSEM_WAITING_FOR_WRITE) { in __rwsem_do_wake()
137 wake_up_process(waiter->task); in __rwsem_do_wake()
168 if (waiter->list.next == &sem->wait_list) in __rwsem_do_wake()
171 waiter = list_entry(waiter->list.next, in __rwsem_do_wake()
174 } while (waiter->type != RWSEM_WAITING_FOR_WRITE); in __rwsem_do_wake()
177 if (waiter->type != RWSEM_WAITING_FOR_WRITE) in __rwsem_do_wake()
187 waiter = list_entry(next, struct rwsem_waiter, list); in __rwsem_do_wake()
188 next = waiter->list.next; in __rwsem_do_wake()
189 tsk = waiter->task; in __rwsem_do_wake()
198 waiter->task = NULL; in __rwsem_do_wake()
217 struct rwsem_waiter waiter; in rwsem_down_read_failed() local
221 waiter.task = tsk; in rwsem_down_read_failed()
222 waiter.type = RWSEM_WAITING_FOR_READ; in rwsem_down_read_failed()
228 list_add_tail(&waiter.list, &sem->wait_list); in rwsem_down_read_failed()
248 if (!waiter.task) in rwsem_down_read_failed()
441 struct rwsem_waiter waiter; in rwsem_down_write_failed() local
454 waiter.task = current; in rwsem_down_write_failed()
455 waiter.type = RWSEM_WAITING_FOR_WRITE; in rwsem_down_write_failed()
463 list_add_tail(&waiter.list, &sem->wait_list); in rwsem_down_write_failed()
497 list_del(&waiter.list); in rwsem_down_write_failed()