tcp: add queue_add_hash to tcp_request_sock_ops
authorOctavian Purdila <octavian.purdila@intel.com>
Wed, 25 Jun 2014 14:10:01 +0000 (17:10 +0300)
committerDavid S. Miller <davem@davemloft.net>
Fri, 27 Jun 2014 22:53:36 +0000 (15:53 -0700)
Add queue_add_hash member to tcp_request_sock_ops so that we can later
unify tcp_v4_conn_request and tcp_v6_conn_request.

Signed-off-by: Octavian Purdila <octavian.purdila@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/tcp.h
net/ipv4/tcp_ipv4.c
net/ipv6/tcp_ipv6.c

index 30fe98bc8957e5b689e413fd95ccbee836f17a7d..cec6e2cf0610d8acb9e0738e2ffff53e217b3a74 100644 (file)
@@ -1615,6 +1615,8 @@ struct tcp_request_sock_ops {
        int (*send_synack)(struct sock *sk, struct dst_entry *dst,
                           struct flowi *fl, struct request_sock *req,
                           u16 queue_mapping, struct tcp_fastopen_cookie *foc);
+       void (*queue_hash_add)(struct sock *sk, struct request_sock *req,
+                              const unsigned long timeout);
 };
 
 #ifdef CONFIG_SYN_COOKIES
index 499d440539ad226a73eb5263efae02ce145b747f..845c39de97ab4592209bddde8193a6e7c0a4a3ed 100644 (file)
@@ -1277,6 +1277,7 @@ static const struct tcp_request_sock_ops tcp_request_sock_ipv4_ops = {
        .route_req      =       tcp_v4_route_req,
        .init_seq       =       tcp_v4_init_sequence,
        .send_synack    =       tcp_v4_send_synack,
+       .queue_hash_add =       inet_csk_reqsk_queue_hash_add,
 };
 
 int tcp_v4_conn_request(struct sock *sk, struct sk_buff *skb)
@@ -1403,7 +1404,7 @@ int tcp_v4_conn_request(struct sock *sk, struct sk_buff *skb)
                        goto drop_and_free;
 
                tcp_rsk(req)->listener = NULL;
-               inet_csk_reqsk_queue_hash_add(sk, req, TCP_TIMEOUT_INIT);
+               af_ops->queue_hash_add(sk, req, TCP_TIMEOUT_INIT);
        }
 
        return 0;
index ad658332cf7d1d88e83795e32a10a7aec68188c6..8232bc7423c666101ff0e85cc412cd2b92e89655 100644 (file)
@@ -767,6 +767,7 @@ static const struct tcp_request_sock_ops tcp_request_sock_ipv6_ops = {
        .route_req      =       tcp_v6_route_req,
        .init_seq       =       tcp_v6_init_sequence,
        .send_synack    =       tcp_v6_send_synack,
+       .queue_hash_add =       inet6_csk_reqsk_queue_hash_add,
 };
 
 static void tcp_v6_send_response(struct sk_buff *skb, u32 seq, u32 ack, u32 win,
@@ -1126,7 +1127,7 @@ static int tcp_v6_conn_request(struct sock *sk, struct sk_buff *skb)
                        goto drop_and_free;
 
                tcp_rsk(req)->listener = NULL;
-               inet6_csk_reqsk_queue_hash_add(sk, req, TCP_TIMEOUT_INIT);
+               af_ops->queue_hash_add(sk, req, TCP_TIMEOUT_INIT);
        }
        return 0;