inet: remove sk_listener parameter from syn_ack_timeout()
authorEric Dumazet <edumazet@google.com>
Sun, 22 Mar 2015 17:22:19 +0000 (10:22 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 23 Mar 2015 20:52:25 +0000 (16:52 -0400)
It is not needed, and req->sk_listener points to the listener anyway.
request_sock argument can be const.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/dccp.h
include/net/request_sock.h
include/net/tcp.h
net/dccp/ipv4.c
net/ipv4/inet_connection_sock.c
net/ipv4/tcp_timer.c

index 439ff698000aa4ef81f5cef53e69095ce9c9fc80..3dca24d3ac67f9d359e3b4aab2814faedcec7a79 100644 (file)
@@ -317,6 +317,6 @@ static inline const char *dccp_role(const struct sock *sk)
        return NULL;
 }
 
-extern void dccp_syn_ack_timeout(struct sock *sk, struct request_sock *req);
+extern void dccp_syn_ack_timeout(const struct request_sock *req);
 
 #endif /* _LINUX_DCCP_H */
index 6a91261d9b7b577c677bd5e02a4a14394e6aaa5b..8603c350fad0ac66c06201bd9ac77247c6dde85a 100644 (file)
@@ -39,8 +39,7 @@ struct request_sock_ops {
        void            (*send_reset)(struct sock *sk,
                                      struct sk_buff *skb);
        void            (*destructor)(struct request_sock *req);
-       void            (*syn_ack_timeout)(struct sock *sk,
-                                          struct request_sock *req);
+       void            (*syn_ack_timeout)(const struct request_sock *req);
 };
 
 int inet_rtx_syn_ack(struct sock *parent, struct request_sock *req);
index 082fd79132b76dce3ec75bf8dac65f9cf85ada21..1876262afd59347d57948124078893cd7292f59b 100644 (file)
@@ -433,7 +433,7 @@ int compat_tcp_getsockopt(struct sock *sk, int level, int optname,
 int compat_tcp_setsockopt(struct sock *sk, int level, int optname,
                          char __user *optval, unsigned int optlen);
 void tcp_set_keepalive(struct sock *sk, int val);
-void tcp_syn_ack_timeout(struct sock *sk, struct request_sock *req);
+void tcp_syn_ack_timeout(const struct request_sock *req);
 int tcp_recvmsg(struct sock *sk, struct msghdr *msg, size_t len, int nonblock,
                int flags, int *addr_len);
 void tcp_parse_options(const struct sk_buff *skb,
index 25a9615b3b88993208a1e73f312103646c2d557f..1f7161e05403639b9eb1f0aa39bc2f8bc73a75ee 100644 (file)
@@ -576,7 +576,7 @@ static void dccp_v4_reqsk_destructor(struct request_sock *req)
        kfree(inet_rsk(req)->opt);
 }
 
-void dccp_syn_ack_timeout(struct sock *sk, struct request_sock *req)
+void dccp_syn_ack_timeout(const struct request_sock *req)
 {
 }
 EXPORT_SYMBOL(dccp_syn_ack_timeout);
index 7d011e825c483f7330f0670f77d17cf68acefb0e..a12b973164d038e8036ba488e700c15278338993 100644 (file)
@@ -615,7 +615,7 @@ static void reqsk_timer_handler(unsigned long data)
                max_retries = defer_accept;
        syn_ack_recalc(req, thresh, max_retries, defer_accept,
                       &expire, &resend);
-       req->rsk_ops->syn_ack_timeout(sk_listener, req);
+       req->rsk_ops->syn_ack_timeout(req);
        if (!expire &&
            (!resend ||
             !inet_rtx_syn_ack(sk_listener, req) ||
index 3daa6b5d766d6bdcc2484178cccd7847e54eb3f1..2568fd282873b7436ca2299e20c283e1affd8688 100644 (file)
@@ -327,7 +327,7 @@ static void tcp_fastopen_synack_timer(struct sock *sk)
        struct request_sock *req;
 
        req = tcp_sk(sk)->fastopen_rsk;
-       req->rsk_ops->syn_ack_timeout(sk, req);
+       req->rsk_ops->syn_ack_timeout(req);
 
        if (req->num_timeout >= max_retries) {
                tcp_write_err(sk);
@@ -539,9 +539,11 @@ static void tcp_write_timer(unsigned long data)
        sock_put(sk);
 }
 
-void tcp_syn_ack_timeout(struct sock *sk, struct request_sock *req)
+void tcp_syn_ack_timeout(const struct request_sock *req)
 {
-       NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_TCPTIMEOUTS);
+       struct net *net = read_pnet(&inet_rsk(req)->ireq_net);
+
+       NET_INC_STATS_BH(net, LINUX_MIB_TCPTIMEOUTS);
 }
 EXPORT_SYMBOL(tcp_syn_ack_timeout);