diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2011-12-14 04:58:33 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-12-14 13:34:55 -0500 |
commit | f943cbe6fb71d1389dd8684b9b4181e49f8e870c (patch) | |
tree | e895be7b8d2985e0123ad48500005d2a86eac101 | |
parent | e6560d4dfe62ddf6010fdf4a417b1b3bdcbf4fd3 (diff) | |
download | linux-f943cbe6fb71d1389dd8684b9b4181e49f8e870c.tar.bz2 |
inet: remove rcu protection on tw_net
commit b099ce2602d806 (net: Batch inet_twsk_purge) added rcu protection
on tw_net for no obvious reason.
struct net are refcounted anyway since timewait sockets escape from rcu
protected sections. tw_net stay valid for the whole timwait lifetime.
This also removes a lot of sparse errors.
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
CC: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | include/net/inet_timewait_sock.h | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/include/net/inet_timewait_sock.h b/include/net/inet_timewait_sock.h index e8c25b981205..ba52c830a7a5 100644 --- a/include/net/inet_timewait_sock.h +++ b/include/net/inet_timewait_sock.h @@ -218,20 +218,12 @@ extern void inet_twsk_purge(struct inet_hashinfo *hashinfo, static inline struct net *twsk_net(const struct inet_timewait_sock *twsk) { -#ifdef CONFIG_NET_NS - return rcu_dereference_raw(twsk->tw_net); /* protected by locking, */ - /* reference counting, */ - /* initialization, or RCU. */ -#else - return &init_net; -#endif + return read_pnet(&twsk->tw_net); } static inline void twsk_net_set(struct inet_timewait_sock *twsk, struct net *net) { -#ifdef CONFIG_NET_NS - rcu_assign_pointer(twsk->tw_net, net); -#endif + write_pnet(&twsk->tw_net, net); } #endif /* _INET_TIMEWAIT_SOCK_ */ |