summaryrefslogtreecommitdiff
path: root/net/sctp
diff options
context:
space:
mode:
authorVlad Yasevich <vladislav.yasevich@hp.com>2008-01-11 10:12:56 -0500
committerVlad Yasevich <vladislav.yasevich@hp.com>2008-02-05 10:59:30 -0500
commit0eca8fee0ce3fa0962ac98ab30c10995754a3195 (patch)
tree5ab3ab7fd42ca8df049f5291d5674a8ddf4e3287 /net/sctp
parent60c778b25972e095df8981dd41e99d161e8738f9 (diff)
downloadlinux-3.10-0eca8fee0ce3fa0962ac98ab30c10995754a3195.tar.gz
linux-3.10-0eca8fee0ce3fa0962ac98ab30c10995754a3195.tar.bz2
linux-3.10-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/sctp')
-rw-r--r--net/sctp/socket.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index 401dac61840..894c278c8cd 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))