From 88d40c16807cc6fd0919496ce854b7565041272f Mon Sep 17 00:00:00 2001 From: Amir Vadai Date: Mon, 14 Jun 2010 13:08:36 +0300 Subject: [PATCH] sdp: fix issues in orphan count Signed-off-by: Amir Vadai --- drivers/infiniband/ulp/sdp/sdp_main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/infiniband/ulp/sdp/sdp_main.c b/drivers/infiniband/ulp/sdp/sdp_main.c index 47ddb4d730e2..fe8da8aa5fa7 100644 --- a/drivers/infiniband/ulp/sdp/sdp_main.c +++ b/drivers/infiniband/ulp/sdp/sdp_main.c @@ -735,7 +735,7 @@ adjudge_to_death: * consume significant resources. Let's do it with special * linger2 option. --ANK */ - if (sk->sk_state == TCP_FIN_WAIT1) { + if ((1 << sk->sk_state) & (TCPF_FIN_WAIT1 | TCPF_TIME_WAIT | TCPF_LAST_ACK)) { /* TODO: liger2 unimplemented. We should wait 3.5 * rto. How do I know rto? */ /* TODO: tcp_fin_time to get timeout */ @@ -1172,6 +1172,8 @@ static void sdp_shutdown(struct sock *sk, int how) if (ssk->nonagle & TCP_NAGLE_OFF) ssk->nonagle |= TCP_NAGLE_PUSH; + percpu_counter_inc(ssk->isk.sk.sk_prot->orphan_count); + sdp_send_disconnect(sk); } -- 2.50.1