Lines Matching refs:waiter
675 static void locks_insert_global_blocked(struct file_lock_core *waiter) in locks_insert_global_blocked() argument
679 hash_add(blocked_hash, &waiter->flc_link, posix_owner_key(waiter)); in locks_insert_global_blocked()
682 static void locks_delete_global_blocked(struct file_lock_core *waiter) in locks_delete_global_blocked() argument
686 hash_del(&waiter->flc_link); in locks_delete_global_blocked()
694 static void __locks_unlink_block(struct file_lock_core *waiter) in __locks_unlink_block() argument
696 locks_delete_global_blocked(waiter); in __locks_unlink_block()
697 list_del_init(&waiter->flc_blocked_member); in __locks_unlink_block()
703 struct file_lock_core *waiter; in __locks_wake_up_blocks() local
706 waiter = list_first_entry(&blocker->flc_blocked_requests, in __locks_wake_up_blocks()
709 fl = file_lock(waiter); in __locks_wake_up_blocks()
710 __locks_unlink_block(waiter); in __locks_wake_up_blocks()
711 if ((waiter->flc_flags & (FL_POSIX | FL_FLOCK)) && in __locks_wake_up_blocks()
722 smp_store_release(&waiter->flc_blocker, NULL); in __locks_wake_up_blocks()
726 static int __locks_delete_block(struct file_lock_core *waiter) in __locks_delete_block() argument
751 if (!smp_load_acquire(&waiter->flc_blocker) && in __locks_delete_block()
752 list_empty(&waiter->flc_blocked_requests)) in __locks_delete_block()
756 if (waiter->flc_blocker) in __locks_delete_block()
758 __locks_wake_up_blocks(waiter); in __locks_delete_block()
759 __locks_unlink_block(waiter); in __locks_delete_block()
765 smp_store_release(&waiter->flc_blocker, NULL); in __locks_delete_block()
776 int locks_delete_block(struct file_lock *waiter) in locks_delete_block() argument
778 return __locks_delete_block(&waiter->c); in locks_delete_block()
798 struct file_lock_core *waiter, in __locks_insert_block() argument
804 BUG_ON(!list_empty(&waiter->flc_blocked_member)); in __locks_insert_block()
807 if (conflict(flc, waiter)) { in __locks_insert_block()
811 waiter->flc_blocker = blocker; in __locks_insert_block()
812 list_add_tail(&waiter->flc_blocked_member, in __locks_insert_block()
816 locks_insert_global_blocked(waiter); in __locks_insert_block()
822 __locks_wake_up_blocks(waiter); in __locks_insert_block()
827 struct file_lock_core *waiter, in locks_insert_block() argument
832 __locks_insert_block(blocker, waiter, conflict); in locks_insert_block()