aboutsummaryrefslogtreecommitdiffstats
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)
[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 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,
1911 * rwnd by that amount. If all the data in the skb is read, 1911 * rwnd by that amount. If all the data in the skb is read,
1912 * rwnd is updated when the event is freed. 1912 * rwnd is updated when the event is freed.
1913 */ 1913 */
1914 sctp_assoc_rwnd_increase(event->asoc, copied); 1914 if (!sctp_ulpevent_is_notification(event))
1915 sctp_assoc_rwnd_increase(event->asoc, copied);
1915 goto out; 1916 goto out;
1916 } else if ((event->msg_flags & MSG_NOTIFICATION) || 1917 } else if ((event->msg_flags & MSG_NOTIFICATION) ||
1917 (event->msg_flags & MSG_EOR)) 1918 (event->msg_flags & MSG_EOR))