Lines Matching refs:waiter
67 struct rwsem_waiter *waiter; in __rwsem_do_wake() local
71 waiter = list_entry(sem->wait_list.next, struct rwsem_waiter, list); in __rwsem_do_wake()
73 if (waiter->type == RWSEM_WAITING_FOR_WRITE) { in __rwsem_do_wake()
77 wake_up_process(waiter->task); in __rwsem_do_wake()
84 struct list_head *next = waiter->list.next; in __rwsem_do_wake()
86 list_del(&waiter->list); in __rwsem_do_wake()
87 tsk = waiter->task; in __rwsem_do_wake()
96 waiter->task = NULL; in __rwsem_do_wake()
102 waiter = list_entry(next, struct rwsem_waiter, list); in __rwsem_do_wake()
103 } while (waiter->type != RWSEM_WAITING_FOR_WRITE); in __rwsem_do_wake()
117 struct rwsem_waiter *waiter; in __rwsem_wake_one_writer() local
119 waiter = list_entry(sem->wait_list.next, struct rwsem_waiter, list); in __rwsem_wake_one_writer()
120 wake_up_process(waiter->task); in __rwsem_wake_one_writer()
130 struct rwsem_waiter waiter; in __down_read() local
147 waiter.task = tsk; in __down_read()
148 waiter.type = RWSEM_WAITING_FOR_READ; in __down_read()
151 list_add_tail(&waiter.list, &sem->wait_list); in __down_read()
158 if (!waiter.task) in __down_read()
196 struct rwsem_waiter waiter; in __down_write_common() local
205 waiter.task = tsk; in __down_write_common()
206 waiter.type = RWSEM_WAITING_FOR_WRITE; in __down_write_common()
207 list_add_tail(&waiter.list, &sem->wait_list); in __down_write_common()
228 list_del(&waiter.list); in __down_write_common()
235 list_del(&waiter.list); in __down_write_common()