SK_WAIT_DATA(9)

NAME
sk_wait_data - wait for data to arrive at sk_receive_queue

SYNOPSIS

int sk_wait_data (struct sock * sk, long * timeo);

ARGUMENTS

sk  sock to wait on

timeo
    for how long

DESCRIPTION

Now socket state including sk->sk_err is changed only under lock, hence we may omit checks after joining wait queue. We check receive queue before schedule only as optimization; it is very likely that release_sock added new data.