peer_wait
init_waitqueue_head(&u->peer_wait);
prepare_to_wait_exclusive(&u->peer_wait, &wait, TASK_INTERRUPTIBLE);
finish_wait(&u->peer_wait, &wait);
wake_up_interruptible(&unix_sk(sk)->peer_wait);
if (wq_has_sleeper(&u->peer_wait))
wake_up_interruptible_sync_poll(&u->peer_wait,
__remove_wait_queue(&unix_sk(u->peer_wake.private)->peer_wait,
spin_lock(&u_other->peer_wait.lock);
__add_wait_queue(&u_other->peer_wait, &u->peer_wake);
spin_unlock(&u_other->peer_wait.lock);
spin_lock(&u_other->peer_wait.lock);
__remove_wait_queue(&u_other->peer_wait, &u->peer_wake);
spin_unlock(&u_other->peer_wait.lock);
wake_up_interruptible_all(&unix_sk(sk)->peer_wait);
wake_up_interruptible_all(&u->peer_wait);
wake_up_interruptible_all(&u->peer_wait);