On Wed, May 04, 2016 at 02:21:53PM +0100, Ian Campbell wrote: > The peer may be expecting a reply having sent a request and then done a > shutdown(SHUT_WR), so tearing down the whole socket at this point seems > wrong and breaks for me with a client which does a SHUT_WR. > > Looking at other socket family's stream_recvmsg callbacks doing a shutdown > here does not seem to be the norm and removing it does not seem to have > had any adverse effects that I can see.
Seems fine to me. > I'm using Stefan's RFC virtio transport patches, I'm unsure of the impact > on the vmci transport. > > Signed-off-by: Ian Campbell <[email protected]> > Cc: "David S. Miller" <[email protected]> > Cc: Stefan Hajnoczi <[email protected]> > Cc: Claudio Imbrenda <[email protected]> > Cc: Andy King <[email protected]> > Cc: Dmitry Torokhov <[email protected]> > Cc: Jorgen Hansen <[email protected]> > Cc: Adit Ranadive <[email protected]> > Cc: [email protected] > --- > net/vmw_vsock/af_vsock.c | 21 +-------------------- > 1 file changed, 1 insertion(+), 20 deletions(-) > > diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c > index 1e5f5ed..7a25150 100644 > --- a/net/vmw_vsock/af_vsock.c > +++ b/net/vmw_vsock/af_vsock.c > @@ -1789,27 +1789,8 @@ vsock_stream_recvmsg(struct socket *sock, struct > msghdr *msg, size_t len, > else if (sk->sk_shutdown & RCV_SHUTDOWN) > err = 0; > > - if (copied > 0) { > - /* We only do these additional bookkeeping/notification steps > - * if we actually copied something out of the queue pair > - * instead of just peeking ahead. > - */ > - > - if (!(flags & MSG_PEEK)) { > - /* If the other side has shutdown for sending and there > - * is nothing more to read, then modify the socket > - * state. > - */ > - if (vsk->peer_shutdown & SEND_SHUTDOWN) { > - if (vsock_stream_has_data(vsk) <= 0) { > - sk->sk_state = SS_UNCONNECTED; > - sock_set_flag(sk, SOCK_DONE); > - sk->sk_state_change(sk); > - } > - } > - } > + if (copied > 0) > err = copied; > - } > > out: > release_sock(sk); > -- > 2.8.1 >
signature.asc
Description: PGP signature
