]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
SDP: BUG1348 - a socket is left after netper on the server side
authorAmir Vadai <amirv@mellanox.co.il>
Thu, 20 Nov 2008 13:02:46 +0000 (15:02 +0200)
committerMukesh Kacker <mukesh.kacker@oracle.com>
Tue, 6 Oct 2015 12:04:21 +0000 (05:04 -0700)
Removed unneccessary sock_hold from sdp_shutdown. This ref count
will be taken by close(). no need to take it twice.

Signed-off-by: Amir Vadai <amirv@mellanox.co.il>
drivers/infiniband/ulp/sdp/sdp_main.c

index 0d34aa00bf35d86abed0012d3a3f07e0e66ffe0b..1b69de0b291f660d8cfbfba115138acccd10c257 100644 (file)
@@ -933,11 +933,16 @@ static void sdp_shutdown(struct sock *sk, int how)
        if (!(how & SEND_SHUTDOWN))
                return;
 
+       /* If we've already sent a FIN, or it's a closed state, skip this. */
+       if (!((1 << sk->sk_state) &
+           (TCPF_ESTABLISHED | TCPF_SYN_SENT |
+            TCPF_SYN_RECV | TCPF_CLOSE_WAIT))) {
+               return;
+       }
+
        if (!sdp_close_state(sk))
            return;
 
-       sock_hold(sk, SOCK_REF_CM_TW);
-
        /*
         * Just turn off CORK here.
         *   We could check for socket shutting down in main data path,