Lines Matching refs:waiter
99 struct ldsem_waiter *waiter, *next; in __ldsem_wake_readers() local
117 list_for_each_entry_safe(waiter, next, &sem->read_wait, list) { in __ldsem_wake_readers()
118 tsk = waiter->task; in __ldsem_wake_readers()
120 waiter->task = NULL; in __ldsem_wake_readers()
145 struct ldsem_waiter *waiter; in __ldsem_wake_writer() local
147 waiter = list_entry(sem->write_wait.next, struct ldsem_waiter, list); in __ldsem_wake_writer()
148 wake_up_process(waiter->task); in __ldsem_wake_writer()
182 struct ldsem_waiter waiter; in down_read_failed() local
204 list_add_tail(&waiter.list, &sem->read_wait); in down_read_failed()
207 waiter.task = current; in down_read_failed()
220 if (!waiter.task) in down_read_failed()
236 if (waiter.task) { in down_read_failed()
238 list_del(&waiter.list); in down_read_failed()
240 put_task_struct(waiter.task); in down_read_failed()
255 struct ldsem_waiter waiter; in down_write_failed() local
276 list_add_tail(&waiter.list, &sem->write_wait); in down_write_failed()
278 waiter.task = current; in down_write_failed()
295 list_del(&waiter.list); in down_write_failed()