Lines Matching refs:waiter

641 static void locks_insert_global_blocked(struct file_lock *waiter)  in locks_insert_global_blocked()  argument
645 hash_add(blocked_hash, &waiter->fl_link, posix_owner_key(waiter)); in locks_insert_global_blocked()
648 static void locks_delete_global_blocked(struct file_lock *waiter) in locks_delete_global_blocked() argument
652 hash_del(&waiter->fl_link); in locks_delete_global_blocked()
660 static void __locks_delete_block(struct file_lock *waiter) in __locks_delete_block() argument
662 locks_delete_global_blocked(waiter); in __locks_delete_block()
663 list_del_init(&waiter->fl_blocked_member); in __locks_delete_block()
669 struct file_lock *waiter; in __locks_wake_up_blocks() local
671 waiter = list_first_entry(&blocker->fl_blocked_requests, in __locks_wake_up_blocks()
673 __locks_delete_block(waiter); in __locks_wake_up_blocks()
674 if (waiter->fl_lmops && waiter->fl_lmops->lm_notify) in __locks_wake_up_blocks()
675 waiter->fl_lmops->lm_notify(waiter); in __locks_wake_up_blocks()
677 wake_up(&waiter->fl_wait); in __locks_wake_up_blocks()
684 smp_store_release(&waiter->fl_blocker, NULL); in __locks_wake_up_blocks()
694 int locks_delete_block(struct file_lock *waiter) in locks_delete_block() argument
719 if (!smp_load_acquire(&waiter->fl_blocker) && in locks_delete_block()
720 list_empty(&waiter->fl_blocked_requests)) in locks_delete_block()
724 if (waiter->fl_blocker) in locks_delete_block()
726 __locks_wake_up_blocks(waiter); in locks_delete_block()
727 __locks_delete_block(waiter); in locks_delete_block()
733 smp_store_release(&waiter->fl_blocker, NULL); in locks_delete_block()
755 struct file_lock *waiter, in __locks_insert_block() argument
760 BUG_ON(!list_empty(&waiter->fl_blocked_member)); in __locks_insert_block()
764 if (conflict(fl, waiter)) { in __locks_insert_block()
768 waiter->fl_blocker = blocker; in __locks_insert_block()
769 list_add_tail(&waiter->fl_blocked_member, &blocker->fl_blocked_requests); in __locks_insert_block()
771 locks_insert_global_blocked(waiter); in __locks_insert_block()
777 __locks_wake_up_blocks(waiter); in __locks_insert_block()
782 struct file_lock *waiter, in locks_insert_block() argument
787 __locks_insert_block(blocker, waiter, conflict); in locks_insert_block()