X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=net%2Fipv4%2Ftcp_minisocks.c;h=a0a8422cdda6eba22ce0424ea420dda581fb6387;hb=a8e794ca871505c8ea96cc102f4ad555c5231d7f;hp=d4c0d84d1fd1ca045743f379aaeb857dd4f6734d;hpb=b76fcd5f0c655b6e3e9bf534594357025421c66a;p=linux-2.6.git diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c index d4c0d84d1..a0a8422cd 100644 --- a/net/ipv4/tcp_minisocks.c +++ b/net/ipv4/tcp_minisocks.c @@ -362,6 +362,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 +702,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; @@ -798,6 +805,10 @@ 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); + + /* hmm, maybe from socket? */ + set_vx_info(&newsk->sk_vx_info, current->vx_info); + set_nx_info(&newsk->sk_nx_info, current->nx_info); #ifdef INET_REFCNT_DEBUG atomic_inc(&inet_sock_nr); #endif