Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
[linux-2.6-microblaze.git] / net / vmw_vsock / virtio_transport_common.c
index 0edda1e..5956939 100644 (file)
@@ -841,8 +841,10 @@ void virtio_transport_release(struct vsock_sock *vsk)
                virtio_transport_free_pkt(pkt);
        }
 
-       if (remove_sock)
+       if (remove_sock) {
+               sock_set_flag(sk, SOCK_DONE);
                vsock_remove_sock(vsk);
+       }
 }
 EXPORT_SYMBOL_GPL(virtio_transport_release);
 
@@ -1132,8 +1134,8 @@ void virtio_transport_recv_pkt(struct virtio_transport *t,
 
        lock_sock(sk);
 
-       /* Check if sk has been released before lock_sock */
-       if (sk->sk_shutdown == SHUTDOWN_MASK) {
+       /* Check if sk has been closed before lock_sock */
+       if (sock_flag(sk, SOCK_DONE)) {
                (void)virtio_transport_reset_no_sock(t, pkt);
                release_sock(sk);
                sock_put(sk);