Lines Matching refs:waiter

69 	struct rwsem_waiter *waiter;  in __rwsem_do_wake()  local
73 waiter = list_entry(sem->wait_list.next, struct rwsem_waiter, list); in __rwsem_do_wake()
75 if (waiter->type == RWSEM_WAITING_FOR_WRITE) { in __rwsem_do_wake()
79 wake_up_process(waiter->task); in __rwsem_do_wake()
86 struct list_head *next = waiter->list.next; in __rwsem_do_wake()
88 list_del(&waiter->list); in __rwsem_do_wake()
89 tsk = waiter->task; in __rwsem_do_wake()
98 waiter->task = NULL; in __rwsem_do_wake()
104 waiter = list_entry(next, struct rwsem_waiter, list); in __rwsem_do_wake()
105 } while (waiter->type != RWSEM_WAITING_FOR_WRITE); in __rwsem_do_wake()
119 struct rwsem_waiter *waiter; in __rwsem_wake_one_writer() local
121 waiter = list_entry(sem->wait_list.next, struct rwsem_waiter, list); in __rwsem_wake_one_writer()
122 wake_up_process(waiter->task); in __rwsem_wake_one_writer()
132 struct rwsem_waiter waiter; in __down_read_common() local
145 waiter.task = current; in __down_read_common()
146 waiter.type = RWSEM_WAITING_FOR_READ; in __down_read_common()
149 list_add_tail(&waiter.list, &sem->wait_list); in __down_read_common()
153 if (!waiter.task) in __down_read_common()
173 list_del(&waiter.list); in __down_read_common()
215 struct rwsem_waiter waiter; in __down_write_common() local
222 waiter.task = current; in __down_write_common()
223 waiter.type = RWSEM_WAITING_FOR_WRITE; in __down_write_common()
224 list_add_tail(&waiter.list, &sem->wait_list); in __down_write_common()
246 list_del(&waiter.list); in __down_write_common()
253 list_del(&waiter.list); in __down_write_common()