Lines Matching defs:waiter
384 /* Remove waiter from blocker's block list.
387 static void __locks_delete_block(struct file_lock *waiter)
389 list_del_init(&waiter->fl_block);
390 list_del_init(&waiter->fl_link);
391 waiter->fl_next = NULL;
396 static void locks_delete_block(struct file_lock *waiter)
399 __locks_delete_block(waiter);
403 /* Insert waiter into blocker's block list.
409 struct file_lock *waiter)
411 BUG_ON(!list_empty(&waiter->fl_block));
412 list_add_tail(&waiter->fl_block, &blocker->fl_block);
413 waiter->fl_next = blocker;
415 list_add(&waiter->fl_link, &blocked_list);
425 struct file_lock *waiter = list_entry(blocker->fl_block.next,
427 __locks_delete_block(waiter);
428 if (waiter->fl_lmops && waiter->fl_lmops->fl_notify)
429 waiter->fl_lmops->fl_notify(waiter);
431 wake_up(&waiter->fl_wait);
541 static int locks_block_on_timeout(struct file_lock *blocker, struct file_lock *waiter, int time)
544 locks_insert_block(blocker, waiter);
545 result = interruptible_sleep_on_locked(&waiter->fl_wait, time);
546 __locks_delete_block(waiter);
1890 * @waiter: the lock which was waiting
1895 posix_unblock_lock(struct file *filp, struct file_lock *waiter)
1900 if (waiter->fl_next)
1901 __locks_delete_block(waiter);