On Fri, Oct 11, 2019 at 03:07:57PM +0200, Stefano Garzarella wrote: > vmci_transport never allowed half-closed socket on the host side. > Since we want to have the same behaviour across all transports, we > add a section in the "Implementation notes". > > Cc: Jorgen Hansen <jhansen@xxxxxxxxxx> > Cc: Adit Ranadive <aditr@xxxxxxxxxx> > Signed-off-by: Stefano Garzarella <sgarzare@xxxxxxxxxx> > --- > net/vmw_vsock/af_vsock.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c > index 2ab43b2bba31..27df57c2024b 100644 > --- a/net/vmw_vsock/af_vsock.c > +++ b/net/vmw_vsock/af_vsock.c > @@ -83,6 +83,10 @@ > * TCP_ESTABLISHED - connected > * TCP_CLOSING - disconnecting > * TCP_LISTEN - listening > + * > + * - Half-closed socket is supported only on the guest side. recv() on the host > + * side should return EOF when the guest closes a connection, also if some > + * data is still in the receive queue. > */ > > #include <linux/types.h> That's a great way to lose data in a way that's hard to debug. VMCI sockets connect to a hypervisor so there's tight control of what the hypervisor can do. But vhost vsocks connect to a fully fledged Linux, so you can't assume this is safe. And application authors do not read kernel source. > -- > 2.21.0