diff options
-rw-r--r-- | net/sctp/socket.c | 12 |
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 | ||