Merge tag 'spi-fix-v5.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/brooni...
[linux-2.6-microblaze.git] / drivers / scsi / iscsi_tcp.c
index dd33ce0..1bc3759 100644 (file)
@@ -600,6 +600,12 @@ static void iscsi_sw_tcp_release_conn(struct iscsi_conn *conn)
        if (!sock)
                return;
 
+       /*
+        * Make sure we start socket shutdown now in case userspace is up
+        * but delayed in releasing the socket.
+        */
+       kernel_sock_shutdown(sock, SHUT_RDWR);
+
        sock_hold(sock->sk);
        iscsi_sw_tcp_conn_restore_callbacks(conn);
        sock_put(sock->sk);
@@ -689,6 +695,7 @@ iscsi_sw_tcp_conn_bind(struct iscsi_cls_session *cls_session,
        sk->sk_sndtimeo = 15 * HZ; /* FIXME: make it configurable */
        sk->sk_allocation = GFP_ATOMIC;
        sk_set_memalloc(sk);
+       sock_no_linger(sk);
 
        iscsi_sw_tcp_conn_set_callbacks(conn);
        tcp_sw_conn->sendpage = tcp_sw_conn->sock->ops->sendpage;