aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/sctp/socket.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index b1a17758003a..174d4d35e951 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -1242,13 +1242,13 @@ SCTP_STATIC void sctp_close(struct sock *sk, long timeout)
1242 if (sctp_state(asoc, CLOSED)) { 1242 if (sctp_state(asoc, CLOSED)) {
1243 sctp_unhash_established(asoc); 1243 sctp_unhash_established(asoc);
1244 sctp_association_free(asoc); 1244 sctp_association_free(asoc);
1245 continue;
1246 }
1247 }
1245 1248
1246 } else if (sock_flag(sk, SOCK_LINGER) && 1249 if (sock_flag(sk, SOCK_LINGER) && !sk->sk_lingertime)
1247 !sk->sk_lingertime) 1250 sctp_primitive_ABORT(asoc, NULL);
1248 sctp_primitive_ABORT(asoc, NULL); 1251 else
1249 else
1250 sctp_primitive_SHUTDOWN(asoc, NULL);
1251 } else
1252 sctp_primitive_SHUTDOWN(asoc, NULL); 1252 sctp_primitive_SHUTDOWN(asoc, NULL);
1253 } 1253 }
1254 1254