struct inet_ehash_bucket *ehead = &hashinfo->ehash[sk->sk_hashent]; 
struct inet_ehash_bucket *ehead = inet_ehash_bucket(hashinfo, sk->sk_hash); 
void __inet_twsk_hashdance(struct inet_timewait_sock *tw, struct sock *sk,			   struct inet_hashinfo *hashinfo){	const struct inet_sock *inet = inet_sk(sk);	const struct inet_connection_sock *icsk = inet_csk(sk);	struct inet_ehash_bucket *ehead = &hashinfo->ehash[sk->sk_hashent];	struct inet_bind_hashbucket *bhead;	/* Step 1: Put TW into bind hash. Original socket stays there too.	   Note, that any socket with inet->num != 0 MUST be bound in	   binding cache, even if it is closed.	 */	bhead = &hashinfo->bhash[inet_bhashfn(inet->num, hashinfo->bhash_size)];	spin_lock(&bhead->lock);	tw->tw_tb = icsk->icsk_bind_hash;	BUG_TRAP(icsk->icsk_bind_hash);	inet_twsk_add_bind_node(tw, &tw->tw_tb->owners);	spin_unlock(&bhead->lock);	write_lock(&ehead->lock);	/* Step 2: Remove SK from established hash. */	if (__sk_del_node_init(sk))		sock_prot_dec_use(sk->sk_prot);	/* Step 3: Hash TW into TIMEWAIT half of established hash table. */	inet_twsk_add_node(tw, &(ehead + hashinfo->ehash_size)->chain);	atomic_inc(&tw->tw_refcnt);	write_unlock(&ehead->lock);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/81c3d5470ecc70564eb9209946730fe2be93ad06/inet_timewait_sock.c/clean/net/ipv4/inet_timewait_sock.c