diff options
Diffstat (limited to 'net/sctp/socket.c')
| -rw-r--r-- | net/sctp/socket.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/net/sctp/socket.c b/net/sctp/socket.c index fde3f55bfd4b..dab15949958e 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c | |||
| @@ -1289,9 +1289,13 @@ SCTP_STATIC void sctp_close(struct sock *sk, long timeout) | |||
| 1289 | } | 1289 | } |
| 1290 | } | 1290 | } |
| 1291 | 1291 | ||
| 1292 | if (sock_flag(sk, SOCK_LINGER) && !sk->sk_lingertime) | 1292 | if (sock_flag(sk, SOCK_LINGER) && !sk->sk_lingertime) { |
| 1293 | sctp_primitive_ABORT(asoc, NULL); | 1293 | struct sctp_chunk *chunk; |
| 1294 | else | 1294 | |
| 1295 | chunk = sctp_make_abort_user(asoc, NULL, 0); | ||
| 1296 | if (chunk) | ||
| 1297 | sctp_primitive_ABORT(asoc, chunk); | ||
| 1298 | } else | ||
| 1295 | sctp_primitive_SHUTDOWN(asoc, NULL); | 1299 | sctp_primitive_SHUTDOWN(asoc, NULL); |
| 1296 | } | 1300 | } |
| 1297 | 1301 | ||
