diff options
Diffstat (limited to 'net/ipv4/tcp_minisocks.c')
| -rw-r--r-- | net/ipv4/tcp_minisocks.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c index f206ee5dda80..f25b56cb85cb 100644 --- a/net/ipv4/tcp_minisocks.c +++ b/net/ipv4/tcp_minisocks.c | |||
| @@ -20,6 +20,7 @@ | |||
| 20 | 20 | ||
| 21 | #include <linux/mm.h> | 21 | #include <linux/mm.h> |
| 22 | #include <linux/module.h> | 22 | #include <linux/module.h> |
| 23 | #include <linux/slab.h> | ||
| 23 | #include <linux/sysctl.h> | 24 | #include <linux/sysctl.h> |
| 24 | #include <linux/workqueue.h> | 25 | #include <linux/workqueue.h> |
| 25 | #include <net/tcp.h> | 26 | #include <net/tcp.h> |
| @@ -46,7 +47,6 @@ struct inet_timewait_death_row tcp_death_row = { | |||
| 46 | .twcal_timer = TIMER_INITIALIZER(inet_twdr_twcal_tick, 0, | 47 | .twcal_timer = TIMER_INITIALIZER(inet_twdr_twcal_tick, 0, |
| 47 | (unsigned long)&tcp_death_row), | 48 | (unsigned long)&tcp_death_row), |
| 48 | }; | 49 | }; |
| 49 | |||
| 50 | EXPORT_SYMBOL_GPL(tcp_death_row); | 50 | EXPORT_SYMBOL_GPL(tcp_death_row); |
| 51 | 51 | ||
| 52 | static __inline__ int tcp_in_window(u32 seq, u32 end_seq, u32 s_win, u32 e_win) | 52 | static __inline__ int tcp_in_window(u32 seq, u32 end_seq, u32 s_win, u32 e_win) |
| @@ -261,6 +261,7 @@ kill: | |||
| 261 | inet_twsk_put(tw); | 261 | inet_twsk_put(tw); |
| 262 | return TCP_TW_SUCCESS; | 262 | return TCP_TW_SUCCESS; |
| 263 | } | 263 | } |
| 264 | EXPORT_SYMBOL(tcp_timewait_state_process); | ||
| 264 | 265 | ||
| 265 | /* | 266 | /* |
| 266 | * Move a socket to time-wait or dead fin-wait-2 state. | 267 | * Move a socket to time-wait or dead fin-wait-2 state. |
| @@ -361,7 +362,6 @@ void tcp_twsk_destructor(struct sock *sk) | |||
| 361 | tcp_free_md5sig_pool(); | 362 | tcp_free_md5sig_pool(); |
| 362 | #endif | 363 | #endif |
| 363 | } | 364 | } |
| 364 | |||
| 365 | EXPORT_SYMBOL_GPL(tcp_twsk_destructor); | 365 | EXPORT_SYMBOL_GPL(tcp_twsk_destructor); |
| 366 | 366 | ||
| 367 | static inline void TCP_ECN_openreq_child(struct tcp_sock *tp, | 367 | static inline void TCP_ECN_openreq_child(struct tcp_sock *tp, |
| @@ -509,6 +509,7 @@ struct sock *tcp_create_openreq_child(struct sock *sk, struct request_sock *req, | |||
| 509 | } | 509 | } |
| 510 | return newsk; | 510 | return newsk; |
| 511 | } | 511 | } |
| 512 | EXPORT_SYMBOL(tcp_create_openreq_child); | ||
| 512 | 513 | ||
| 513 | /* | 514 | /* |
| 514 | * Process an incoming packet for SYN_RECV sockets represented | 515 | * Process an incoming packet for SYN_RECV sockets represented |
| @@ -671,6 +672,7 @@ struct sock *tcp_check_req(struct sock *sk, struct sk_buff *skb, | |||
| 671 | if (req->retrans < inet_csk(sk)->icsk_accept_queue.rskq_defer_accept && | 672 | if (req->retrans < inet_csk(sk)->icsk_accept_queue.rskq_defer_accept && |
| 672 | TCP_SKB_CB(skb)->end_seq == tcp_rsk(req)->rcv_isn + 1) { | 673 | TCP_SKB_CB(skb)->end_seq == tcp_rsk(req)->rcv_isn + 1) { |
| 673 | inet_rsk(req)->acked = 1; | 674 | inet_rsk(req)->acked = 1; |
| 675 | NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_TCPDEFERACCEPTDROP); | ||
| 674 | return NULL; | 676 | return NULL; |
| 675 | } | 677 | } |
| 676 | 678 | ||
| @@ -704,6 +706,7 @@ embryonic_reset: | |||
| 704 | inet_csk_reqsk_queue_drop(sk, req, prev); | 706 | inet_csk_reqsk_queue_drop(sk, req, prev); |
| 705 | return NULL; | 707 | return NULL; |
| 706 | } | 708 | } |
| 709 | EXPORT_SYMBOL(tcp_check_req); | ||
| 707 | 710 | ||
| 708 | /* | 711 | /* |
| 709 | * Queue segment on the new socket if the new socket is active, | 712 | * Queue segment on the new socket if the new socket is active, |
| @@ -728,15 +731,11 @@ int tcp_child_process(struct sock *parent, struct sock *child, | |||
| 728 | * in main socket hash table and lock on listening | 731 | * in main socket hash table and lock on listening |
| 729 | * socket does not protect us more. | 732 | * socket does not protect us more. |
| 730 | */ | 733 | */ |
| 731 | sk_add_backlog(child, skb); | 734 | __sk_add_backlog(child, skb); |
| 732 | } | 735 | } |
| 733 | 736 | ||
| 734 | bh_unlock_sock(child); | 737 | bh_unlock_sock(child); |
| 735 | sock_put(child); | 738 | sock_put(child); |
| 736 | return ret; | 739 | return ret; |
| 737 | } | 740 | } |
| 738 | |||
| 739 | EXPORT_SYMBOL(tcp_check_req); | ||
| 740 | EXPORT_SYMBOL(tcp_child_process); | 741 | EXPORT_SYMBOL(tcp_child_process); |
| 741 | EXPORT_SYMBOL(tcp_create_openreq_child); | ||
| 742 | EXPORT_SYMBOL(tcp_timewait_state_process); | ||
