vsock: fix timeout in vsock_accept()
The accept(2) is an "input" socket interface, so we should use
SO_RCVTIMEO instead of SO_SNDTIMEO to set the timeout.
So this patch replace sock_sndtimeo() with sock_rcvtimeo() to
use the right timeout in the vsock_accept().
Fixes: d021c34405
("VSOCK: Introduce VM Sockets")
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Reviewed-by: Jorgen Hansen <jhansen@vmware.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
5b186cd60f
Коммит
7e0afbdfd1
|
@ -1408,7 +1408,7 @@ static int vsock_accept(struct socket *sock, struct socket *newsock, int flags,
|
||||||
/* Wait for children sockets to appear; these are the new sockets
|
/* Wait for children sockets to appear; these are the new sockets
|
||||||
* created upon connection establishment.
|
* created upon connection establishment.
|
||||||
*/
|
*/
|
||||||
timeout = sock_sndtimeo(listener, flags & O_NONBLOCK);
|
timeout = sock_rcvtimeo(listener, flags & O_NONBLOCK);
|
||||||
prepare_to_wait(sk_sleep(listener), &wait, TASK_INTERRUPTIBLE);
|
prepare_to_wait(sk_sleep(listener), &wait, TASK_INTERRUPTIBLE);
|
||||||
|
|
||||||
while ((connected = vsock_dequeue_accept(listener)) == NULL &&
|
while ((connected = vsock_dequeue_accept(listener)) == NULL &&
|
||||||
|
|
Загрузка…
Ссылка в новой задаче