]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
sdp: extend socket locking scope in dreq timeout function
authorEldad Zinger <eldadz@mellanox.co.il>
Sun, 3 Oct 2010 09:58:06 +0000 (11:58 +0200)
committerMukesh Kacker <mukesh.kacker@oracle.com>
Tue, 6 Oct 2015 12:05:24 +0000 (05:05 -0700)
Signed-off-by: Eldad Zinger <eldadz@mellanox.co.il>
drivers/infiniband/ulp/sdp/sdp_main.c

index 04e8dca7884b9db4a5ae1918de25ff21c57edeae..96628b65e69484c8ff85100cd970d01e1992ce52 100644 (file)
@@ -1075,14 +1075,15 @@ static void sdp_dreq_wait_timeout_work(struct work_struct *work)
        ssk->dreq_wait_timeout = 0;
        sdp_exch_state(sk, TCPF_LAST_ACK | TCPF_FIN_WAIT1, TCP_TIME_WAIT);
 
-       release_sock(sk);
-
        if (ssk->id) {
                sdp_dbg(sk, "Destroyed QP\n");
                ssk->qp_active = 0;
                rdma_disconnect(ssk->id);
-       } else
+               release_sock(sk);
+       } else {
+               release_sock(sk);
                sock_put(sk, SOCK_REF_CMA);
+       }
 
 out:
        sock_put(sk, SOCK_REF_DREQ_TO);