diff options
author | Vlad Yasevich <vladislav.yasevich@hp.com> | 2008-01-11 10:12:56 -0500 |
---|---|---|
committer | Vlad Yasevich <vladislav.yasevich@hp.com> | 2008-02-05 10:59:30 -0500 |
commit | 0eca8fee0ce3fa0962ac98ab30c10995754a3195 (patch) | |
tree | 5ab3ab7fd42ca8df049f5291d5674a8ddf4e3287 /net | |
parent | 60c778b25972e095df8981dd41e99d161e8738f9 (diff) | |
download | lwn-0eca8fee0ce3fa0962ac98ab30c10995754a3195.tar.gz lwn-0eca8fee0ce3fa0962ac98ab30c10995754a3195.zip |
[SCTP]: Do not increase rwnd when reading partial notification.
When a user reads a partial notification message, do not
update rwnd since notifications must not be counted towards
receive window.
Tested-by: Oliver Roll <mail@oliroll.de>
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/sctp/socket.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/sctp/socket.c b/net/sctp/socket.c index 401dac618406..894c278c8cdc 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c @@ -1911,7 +1911,8 @@ SCTP_STATIC int sctp_recvmsg(struct kiocb *iocb, struct sock *sk, * rwnd by that amount. If all the data in the skb is read, * rwnd is updated when the event is freed. */ - sctp_assoc_rwnd_increase(event->asoc, copied); + if (!sctp_ulpevent_is_notification(event)) + sctp_assoc_rwnd_increase(event->asoc, copied); goto out; } else if ((event->msg_flags & MSG_NOTIFICATION) || (event->msg_flags & MSG_EOR)) |