virtio/vsock: dequeue callback for SOCK_SEQPACKET
authorArseny Krasnov <arseny.krasnov@kaspersky.com>
Fri, 11 Jun 2021 11:12:38 +0000 (14:12 +0300)
committerDavid S. Miller <davem@davemloft.net>
Fri, 11 Jun 2021 20:32:47 +0000 (13:32 -0700)
commit44931195a5412a97c46d299227fbabad4e09010d
tree921d8fb048422460188e43819bc50909931462b5
parentf07b2a5b04d4a50d931a0afe4e3e114ce09a2e4b
virtio/vsock: dequeue callback for SOCK_SEQPACKET

Callback fetches RW packets from rx queue of socket until whole record
is copied(if user's buffer is full, user is not woken up). This is done
to not stall sender, because if we wake up user and it leaves syscall,
nobody will send credit update for rest of record, and sender will wait
for next enter of read syscall at receiver's side. So if user buffer is
full, we just send credit update and drop data.

Signed-off-by: Arseny Krasnov <arseny.krasnov@kaspersky.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/virtio_vsock.h
net/vmw_vsock/virtio_transport_common.c