mirror of
https://github.com/torvalds/linux.git
synced 2024-11-12 23:23:03 +00:00
vmci/vsock: check SO_RCVLOWAT before wake up reader
This adds extra condition to wake up data reader: do it only when number of readable bytes >= SO_RCVLOWAT. Otherwise, there is no sense to kick user, because it will wait until SO_RCVLOWAT bytes will be dequeued. This check is performed in vsock_data_ready(). Signed-off-by: Arseniy Krasnov <AVKrasnov@sberdevices.ru> Reviewed-by: Vishnu Dasa <vdasa@vmware.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
39f1ed33a4
commit
e061aed998
@ -307,7 +307,7 @@ vmci_transport_handle_wrote(struct sock *sk,
|
|||||||
struct vsock_sock *vsk = vsock_sk(sk);
|
struct vsock_sock *vsk = vsock_sk(sk);
|
||||||
PKT_FIELD(vsk, sent_waiting_read) = false;
|
PKT_FIELD(vsk, sent_waiting_read) = false;
|
||||||
#endif
|
#endif
|
||||||
sk->sk_data_ready(sk);
|
vsock_data_ready(sk);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void vmci_transport_notify_pkt_socket_init(struct sock *sk)
|
static void vmci_transport_notify_pkt_socket_init(struct sock *sk)
|
||||||
|
@ -84,7 +84,7 @@ vmci_transport_handle_wrote(struct sock *sk,
|
|||||||
bool bottom_half,
|
bool bottom_half,
|
||||||
struct sockaddr_vm *dst, struct sockaddr_vm *src)
|
struct sockaddr_vm *dst, struct sockaddr_vm *src)
|
||||||
{
|
{
|
||||||
sk->sk_data_ready(sk);
|
vsock_data_ready(sk);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void vsock_block_update_write_window(struct sock *sk)
|
static void vsock_block_update_write_window(struct sock *sk)
|
||||||
@ -282,7 +282,7 @@ vmci_transport_notify_pkt_recv_post_dequeue(
|
|||||||
/* See the comment in
|
/* See the comment in
|
||||||
* vmci_transport_notify_pkt_send_post_enqueue().
|
* vmci_transport_notify_pkt_send_post_enqueue().
|
||||||
*/
|
*/
|
||||||
sk->sk_data_ready(sk);
|
vsock_data_ready(sk);
|
||||||
}
|
}
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
|
Loading…
Reference in New Issue
Block a user