|
@@ -320,7 +320,7 @@ static void tcp_sndbuf_expand(struct sock *sk)
|
|
|
sndmem *= nr_segs * per_mss;
|
|
|
|
|
|
if (sk->sk_sndbuf < sndmem)
|
|
|
- sk->sk_sndbuf = min(sndmem, sysctl_tcp_wmem[2]);
|
|
|
+ sk->sk_sndbuf = min(sndmem, sock_net(sk)->ipv4.sysctl_tcp_wmem[2]);
|
|
|
}
|
|
|
|
|
|
/* 2. Tuning advertised window (window_clamp, rcv_ssthresh)
|
|
@@ -354,7 +354,7 @@ static int __tcp_grow_window(const struct sock *sk, const struct sk_buff *skb)
|
|
|
struct tcp_sock *tp = tcp_sk(sk);
|
|
|
/* Optimize this! */
|
|
|
int truesize = tcp_win_from_space(sk, skb->truesize) >> 1;
|
|
|
- int window = tcp_win_from_space(sk, sysctl_tcp_rmem[2]) >> 1;
|
|
|
+ int window = tcp_win_from_space(sk, sock_net(sk)->ipv4.sysctl_tcp_rmem[2]) >> 1;
|
|
|
|
|
|
while (tp->rcv_ssthresh <= window) {
|
|
|
if (truesize <= skb->len)
|
|
@@ -409,7 +409,7 @@ static void tcp_fixup_rcvbuf(struct sock *sk)
|
|
|
rcvmem <<= 2;
|
|
|
|
|
|
if (sk->sk_rcvbuf < rcvmem)
|
|
|
- sk->sk_rcvbuf = min(rcvmem, sysctl_tcp_rmem[2]);
|
|
|
+ sk->sk_rcvbuf = min(rcvmem, sock_net(sk)->ipv4.sysctl_tcp_rmem[2]);
|
|
|
}
|
|
|
|
|
|
/* 4. Try to fixup all. It is made immediately after connection enters
|
|
@@ -457,15 +457,16 @@ static void tcp_clamp_window(struct sock *sk)
|
|
|
{
|
|
|
struct tcp_sock *tp = tcp_sk(sk);
|
|
|
struct inet_connection_sock *icsk = inet_csk(sk);
|
|
|
+ struct net *net = sock_net(sk);
|
|
|
|
|
|
icsk->icsk_ack.quick = 0;
|
|
|
|
|
|
- if (sk->sk_rcvbuf < sysctl_tcp_rmem[2] &&
|
|
|
+ if (sk->sk_rcvbuf < net->ipv4.sysctl_tcp_rmem[2] &&
|
|
|
!(sk->sk_userlocks & SOCK_RCVBUF_LOCK) &&
|
|
|
!tcp_under_memory_pressure(sk) &&
|
|
|
sk_memory_allocated(sk) < sk_prot_mem_limits(sk, 0)) {
|
|
|
sk->sk_rcvbuf = min(atomic_read(&sk->sk_rmem_alloc),
|
|
|
- sysctl_tcp_rmem[2]);
|
|
|
+ net->ipv4.sysctl_tcp_rmem[2]);
|
|
|
}
|
|
|
if (atomic_read(&sk->sk_rmem_alloc) > sk->sk_rcvbuf)
|
|
|
tp->rcv_ssthresh = min(tp->window_clamp, 2U * tp->advmss);
|
|
@@ -623,7 +624,8 @@ void tcp_rcv_space_adjust(struct sock *sk)
|
|
|
while (tcp_win_from_space(sk, rcvmem) < tp->advmss)
|
|
|
rcvmem += 128;
|
|
|
|
|
|
- rcvbuf = min(rcvwin / tp->advmss * rcvmem, sysctl_tcp_rmem[2]);
|
|
|
+ rcvbuf = min(rcvwin / tp->advmss * rcvmem,
|
|
|
+ sock_net(sk)->ipv4.sysctl_tcp_rmem[2]);
|
|
|
if (rcvbuf > sk->sk_rcvbuf) {
|
|
|
sk->sk_rcvbuf = rcvbuf;
|
|
|
|