diff options
-rw-r--r-- | net/vmw_vsock/virtio_transport_common.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/vmw_vsock/virtio_transport_common.c b/net/vmw_vsock/virtio_transport_common.c index f3f3d06cb6d8..e30f53728725 100644 --- a/net/vmw_vsock/virtio_transport_common.c +++ b/net/vmw_vsock/virtio_transport_common.c | |||
@@ -871,8 +871,10 @@ virtio_transport_recv_connected(struct sock *sk, | |||
871 | if (le32_to_cpu(pkt->hdr.flags) & VIRTIO_VSOCK_SHUTDOWN_SEND) | 871 | if (le32_to_cpu(pkt->hdr.flags) & VIRTIO_VSOCK_SHUTDOWN_SEND) |
872 | vsk->peer_shutdown |= SEND_SHUTDOWN; | 872 | vsk->peer_shutdown |= SEND_SHUTDOWN; |
873 | if (vsk->peer_shutdown == SHUTDOWN_MASK && | 873 | if (vsk->peer_shutdown == SHUTDOWN_MASK && |
874 | vsock_stream_has_data(vsk) <= 0) | 874 | vsock_stream_has_data(vsk) <= 0) { |
875 | sock_set_flag(sk, SOCK_DONE); | ||
875 | sk->sk_state = TCP_CLOSING; | 876 | sk->sk_state = TCP_CLOSING; |
877 | } | ||
876 | if (le32_to_cpu(pkt->hdr.flags)) | 878 | if (le32_to_cpu(pkt->hdr.flags)) |
877 | sk->sk_state_change(sk); | 879 | sk->sk_state_change(sk); |
878 | break; | 880 | break; |