Name
sk_wait_data — 
     wait for data to arrive at sk_receive_queue
 
Synopsis
| int fsfuncsk_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.