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 | |
parent | 60c778b25972e095df8981dd41e99d161e8738f9 (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>
-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, | |||
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)) |