This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / net / ipv4 / tcp_minisocks.c
index d4c0d84..a8da77f 100644 (file)
@@ -25,6 +25,9 @@
 #include <linux/module.h>
 #include <linux/sysctl.h>
 #include <linux/workqueue.h>
+#include <linux/vs_socket.h>
+#include <linux/vs_context.h>
+#include <linux/vs_network.h>
 #include <net/tcp.h>
 #include <net/inet_common.h>
 #include <net/xfrm.h>
@@ -362,6 +365,11 @@ void tcp_time_wait(struct sock *sk, int state, int timeo)
                tw->tw_ts_recent_stamp  = tp->ts_recent_stamp;
                tw_dead_node_init(tw);
 
+               tw->tw_xid              = sk->sk_xid;
+               tw->tw_vx_info          = NULL;
+               tw->tw_nid              = sk->sk_nid;
+               tw->tw_nx_info          = NULL;
+               
 #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
                if (tw->tw_family == PF_INET6) {
                        struct ipv6_pinfo *np = inet6_sk(sk);
@@ -697,6 +705,8 @@ struct sock *tcp_create_openreq_child(struct sock *sk, struct open_request *req,
                newsk->sk_state = TCP_SYN_RECV;
 
                /* SANITY */
+               sock_vx_init(newsk);
+               sock_nx_init(newsk);
                sk_node_init(&newsk->sk_node);
                tcp_sk(newsk)->bind_hash = NULL;
 
@@ -718,9 +728,10 @@ struct sock *tcp_create_openreq_child(struct sock *sk, struct open_request *req,
                sock_reset_flag(newsk, SOCK_DONE);
                newsk->sk_userlocks = sk->sk_userlocks & ~SOCK_BINDPORT_LOCK;
                newsk->sk_backlog.head = newsk->sk_backlog.tail = NULL;
+               newsk->sk_send_head = NULL;
                newsk->sk_callback_lock = RW_LOCK_UNLOCKED;
                skb_queue_head_init(&newsk->sk_error_queue);
-               newsk->sk_write_space = tcp_write_space;
+               newsk->sk_write_space = sk_stream_write_space;
 
                if ((filter = newsk->sk_filter) != NULL)
                        sk_filter_charge(newsk, filter);
@@ -775,7 +786,6 @@ struct sock *tcp_create_openreq_child(struct sock *sk, struct open_request *req,
                tcp_set_ca_state(newtp, TCP_CA_Open);
                tcp_init_xmit_timers(newsk);
                skb_queue_head_init(&newtp->out_of_order_queue);
-               newtp->send_head = NULL;
                newtp->rcv_wup = req->rcv_isn + 1;
                newtp->write_seq = req->snt_isn + 1;
                newtp->pushed_seq = newtp->write_seq;
@@ -790,7 +800,14 @@ struct sock *tcp_create_openreq_child(struct sock *sk, struct open_request *req,
                newtp->num_sacks = 0;
                newtp->urg_data = 0;
                newtp->listen_opt = NULL;
+#ifdef CONFIG_ACCEPT_QUEUES
+               newtp->accept_queue = NULL;
+               memset(newtp->acceptq, 0,sizeof(newtp->acceptq));
+               newtp->class_index = 0;
+
+#else
                newtp->accept_queue = newtp->accept_queue_tail = NULL;
+#endif
                /* Deinitialize syn_wait_lock to trap illegal accesses. */
                memset(&newtp->syn_wait_lock, 0, sizeof(newtp->syn_wait_lock));
 
@@ -798,6 +815,11 @@ struct sock *tcp_create_openreq_child(struct sock *sk, struct open_request *req,
                newsk->sk_err = 0;
                newsk->sk_priority = 0;
                atomic_set(&newsk->sk_refcnt, 2);
+
+               set_vx_info(&newsk->sk_vx_info, sk->sk_vx_info);
+               newsk->sk_xid = sk->sk_xid;
+               set_nx_info(&newsk->sk_nx_info, sk->sk_nx_info);
+               newsk->sk_nid = sk->sk_nid;
 #ifdef INET_REFCNT_DEBUG
                atomic_inc(&inet_sock_nr);
 #endif