mptcp: add mptcp_space_from_win helper
As a wrapper of __tcp_space_from_win(), this patch adds a MPTCP dedicated space_from_win helper mptcp_space_from_win() in protocol.h to paired with mptcp_win_from_space(). Use it instead of __tcp_space_from_win() in both mptcp_rcv_space_adjust() and mptcp_set_rcvlowat(). Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn> Reviewed-by: Mat Martineau <martineau@kernel.org> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
5f0d0649c8
commit
5cdedad62e
3 changed files with 7 additions and 2 deletions
|
@ -2040,7 +2040,7 @@ static void mptcp_rcv_space_adjust(struct mptcp_sock *msk, int copied)
|
||||||
do_div(grow, msk->rcvq_space.space);
|
do_div(grow, msk->rcvq_space.space);
|
||||||
rcvwin += (grow << 1);
|
rcvwin += (grow << 1);
|
||||||
|
|
||||||
rcvbuf = min_t(u64, __tcp_space_from_win(scaling_ratio, rcvwin),
|
rcvbuf = min_t(u64, mptcp_space_from_win(sk, rcvwin),
|
||||||
READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_rmem[2]));
|
READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_rmem[2]));
|
||||||
|
|
||||||
if (rcvbuf > sk->sk_rcvbuf) {
|
if (rcvbuf > sk->sk_rcvbuf) {
|
||||||
|
|
|
@ -386,6 +386,11 @@ static inline int mptcp_win_from_space(const struct sock *sk, int space)
|
||||||
return __tcp_win_from_space(mptcp_sk(sk)->scaling_ratio, space);
|
return __tcp_win_from_space(mptcp_sk(sk)->scaling_ratio, space);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int mptcp_space_from_win(const struct sock *sk, int win)
|
||||||
|
{
|
||||||
|
return __tcp_space_from_win(mptcp_sk(sk)->scaling_ratio, win);
|
||||||
|
}
|
||||||
|
|
||||||
static inline int __mptcp_space(const struct sock *sk)
|
static inline int __mptcp_space(const struct sock *sk)
|
||||||
{
|
{
|
||||||
return mptcp_win_from_space(sk, READ_ONCE(sk->sk_rcvbuf) - __mptcp_rmem(sk));
|
return mptcp_win_from_space(sk, READ_ONCE(sk->sk_rcvbuf) - __mptcp_rmem(sk));
|
||||||
|
|
|
@ -1579,7 +1579,7 @@ int mptcp_set_rcvlowat(struct sock *sk, int val)
|
||||||
if (sk->sk_userlocks & SOCK_RCVBUF_LOCK)
|
if (sk->sk_userlocks & SOCK_RCVBUF_LOCK)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
space = __tcp_space_from_win(mptcp_sk(sk)->scaling_ratio, val);
|
space = mptcp_space_from_win(sk, val);
|
||||||
if (space <= sk->sk_rcvbuf)
|
if (space <= sk->sk_rcvbuf)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue