]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
ipv4: Namespaceify tcp_notsent_lowat sysctl knob
authorNikolay Borisov <kernel@kyup.com>
Wed, 3 Feb 2016 07:46:57 +0000 (09:46 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 7 Feb 2016 19:36:11 +0000 (14:36 -0500)
Signed-off-by: Nikolay Borisov <kernel@kyup.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/netns/ipv4.h
include/net/tcp.h
net/ipv4/sysctl_net_ipv4.c
net/ipv4/tcp_ipv4.c
net/ipv4/tcp_output.c

index de5ff4385e8444e954e0e7c347fe57afbdb24f15..4d6ec3f6fafe0d9b44b0383808d06f25e8e599db 100644 (file)
@@ -106,6 +106,7 @@ struct netns_ipv4 {
        int sysctl_tcp_retries2;
        int sysctl_tcp_orphan_retries;
        int sysctl_tcp_fin_timeout;
+       unsigned int sysctl_tcp_notsent_lowat;
 
        struct ping_group_range ping_group_range;
 
index 3f160c2e6960bff4a0257a0bdb939650e5db3a6c..9b2cb0c8d876d96e857d76f6c49956289faa97e1 100644 (file)
@@ -267,7 +267,6 @@ extern int sysctl_tcp_thin_dupack;
 extern int sysctl_tcp_early_retrans;
 extern int sysctl_tcp_limit_output_bytes;
 extern int sysctl_tcp_challenge_ack_limit;
-extern unsigned int sysctl_tcp_notsent_lowat;
 extern int sysctl_tcp_min_tso_segs;
 extern int sysctl_tcp_min_rtt_wlen;
 extern int sysctl_tcp_autocorking;
@@ -1682,7 +1681,8 @@ void __tcp_v4_send_check(struct sk_buff *skb, __be32 saddr, __be32 daddr);
 
 static inline u32 tcp_notsent_lowat(const struct tcp_sock *tp)
 {
-       return tp->notsent_lowat ?: sysctl_tcp_notsent_lowat;
+       struct net *net = sock_net((struct sock *)tp);
+       return tp->notsent_lowat ?: net->ipv4.sysctl_tcp_notsent_lowat;
 }
 
 static inline bool tcp_stream_memory_free(const struct sock *sk)
index 8bd335a2cba8ab7653b265afbfce69692c81aec2..44bb59824267c74f3aa2aa7067c1d8a6233f1b87 100644 (file)
@@ -455,13 +455,6 @@ static struct ctl_table ipv4_table[] = {
                .proc_handler   = proc_dointvec_minmax,
                .extra1         = &one,
        },
-       {
-               .procname       = "tcp_notsent_lowat",
-               .data           = &sysctl_tcp_notsent_lowat,
-               .maxlen         = sizeof(sysctl_tcp_notsent_lowat),
-               .mode           = 0644,
-               .proc_handler   = proc_dointvec,
-       },
        {
                .procname       = "tcp_rmem",
                .data           = &sysctl_tcp_rmem,
@@ -960,6 +953,13 @@ static struct ctl_table ipv4_net_table[] = {
                .mode           = 0644,
                .proc_handler   = proc_dointvec_jiffies,
        },
+       {
+               .procname       = "tcp_notsent_lowat",
+               .data           = &init_net.ipv4.sysctl_tcp_notsent_lowat,
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+               .proc_handler   = proc_dointvec,
+       },
        { }
 };
 
index 36c83c28d9c91cd05ebf6ae82dba4926fb244e95..11ae706f53a198bc2b76dcc6c80d391ee1d15c68 100644 (file)
@@ -2395,6 +2395,7 @@ static int __net_init tcp_sk_init(struct net *net)
        net->ipv4.sysctl_tcp_retries2 = TCP_RETR2;
        net->ipv4.sysctl_tcp_orphan_retries = 0;
        net->ipv4.sysctl_tcp_fin_timeout = TCP_FIN_TIMEOUT;
+       net->ipv4.sysctl_tcp_notsent_lowat = UINT_MAX;
 
        return 0;
 fail:
index 7beb3f688b7aa17ba1ff7d8788922e4c94413da0..7d2c7a400456bf036ec6b7a32eaf2657eed94378 100644 (file)
@@ -62,9 +62,6 @@ int sysctl_tcp_tso_win_divisor __read_mostly = 3;
 /* By default, RFC2861 behavior.  */
 int sysctl_tcp_slow_start_after_idle __read_mostly = 1;
 
-unsigned int sysctl_tcp_notsent_lowat __read_mostly = UINT_MAX;
-EXPORT_SYMBOL(sysctl_tcp_notsent_lowat);
-
 static bool tcp_write_xmit(struct sock *sk, unsigned int mss_now, int nonagle,
                           int push_one, gfp_t gfp);