summaryrefslogtreecommitdiffstats
path: root/net/sctp
diff options
context:
space:
mode:
authorJohn W. Linville <linville@tuxdriver.com>2006-09-11 14:08:41 -0400
committerJohn W. Linville <linville@tuxdriver.com>2006-09-11 14:08:41 -0400
commit623b3e1d645e42030897d18d37db10133d763006 (patch)
tree090ff481cd72b47ff87d50615461712a33ba41e6 /net/sctp
parentc576af479162c0a11d4e2691ebc97354958d9285 (diff)
parent38f5745c5a90641079fd5b48600ae63f7ab6edcd (diff)
downloadlinux-623b3e1d645e42030897d18d37db10133d763006.tar.gz
linux-623b3e1d645e42030897d18d37db10133d763006.tar.bz2
linux-623b3e1d645e42030897d18d37db10133d763006.zip
Merge branch 'from-linus' into upstream
Diffstat (limited to 'net/sctp')
-rw-r--r--net/sctp/socket.c10
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)
}
}
- if (sock_flag(sk, SOCK_LINGER) && !sk->sk_lingertime)
- sctp_primitive_ABORT(asoc, NULL);
- else
+ if (sock_flag(sk, SOCK_LINGER) && !sk->sk_lingertime) {
+ struct sctp_chunk *chunk;
+
+ chunk = sctp_make_abort_user(asoc, NULL, 0);
+ if (chunk)
+ sctp_primitive_ABORT(asoc, chunk);
+ } else
sctp_primitive_SHUTDOWN(asoc, NULL);
}