Lines Matching refs:waiter

385 	struct rwsem_waiter *waiter, *tmp;  in rwsem_mark_wake()  local
395 waiter = rwsem_first_waiter(sem); in rwsem_mark_wake()
397 if (waiter->type == RWSEM_WAITING_FOR_WRITE) { in rwsem_mark_wake()
406 wake_q_add(wake_q, waiter->task); in rwsem_mark_wake()
436 time_after(jiffies, waiter->timeout)) { in rwsem_mark_wake()
450 owner = waiter->task; in rwsem_mark_wake()
478 list_for_each_entry_safe(waiter, tmp, &sem->wait_list, list) { in rwsem_mark_wake()
479 if (waiter->type == RWSEM_WAITING_FOR_WRITE) in rwsem_mark_wake()
483 list_move_tail(&waiter->list, &wlist); in rwsem_mark_wake()
510 list_for_each_entry_safe(waiter, tmp, &wlist, list) { in rwsem_mark_wake()
513 tsk = waiter->task; in rwsem_mark_wake()
522 smp_store_release(&waiter->task, NULL); in rwsem_mark_wake()
897 struct rwsem_waiter waiter; in rwsem_down_read_slowpath() local
933 waiter.task = current; in rwsem_down_read_slowpath()
934 waiter.type = RWSEM_WAITING_FOR_READ; in rwsem_down_read_slowpath()
935 waiter.timeout = jiffies + RWSEM_WAIT_TIMEOUT; in rwsem_down_read_slowpath()
956 list_add_tail(&waiter.list, &sem->wait_list); in rwsem_down_read_slowpath()
981 if (!smp_load_acquire(&waiter.task)) { in rwsem_down_read_slowpath()
987 if (waiter.task) in rwsem_down_read_slowpath()
1002 list_del(&waiter.list); in rwsem_down_read_slowpath()
1021 struct rwsem_waiter waiter; in rwsem_down_write_slowpath() local
1035 waiter.task = current; in rwsem_down_write_slowpath()
1036 waiter.type = RWSEM_WAITING_FOR_WRITE; in rwsem_down_write_slowpath()
1037 waiter.timeout = jiffies + RWSEM_WAIT_TIMEOUT; in rwsem_down_write_slowpath()
1044 list_add_tail(&waiter.list, &sem->wait_list); in rwsem_down_write_slowpath()
1118 (rwsem_first_waiter(sem) == &waiter)) in rwsem_down_write_slowpath()
1130 time_after(jiffies, waiter.timeout))) { in rwsem_down_write_slowpath()
1140 list_del(&waiter.list); in rwsem_down_write_slowpath()
1149 list_del(&waiter.list); in rwsem_down_write_slowpath()