提交 f943cbe6 编写于 作者: E Eric Dumazet 提交者: David S. Miller

inet: remove rcu protection on tw_net

commit b099ce26 (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: NEric Dumazet <eric.dumazet@gmail.com>
CC: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 e6560d4d
...@@ -218,20 +218,12 @@ extern void inet_twsk_purge(struct inet_hashinfo *hashinfo, ...@@ -218,20 +218,12 @@ extern void inet_twsk_purge(struct inet_hashinfo *hashinfo,
static inline static inline
struct net *twsk_net(const struct inet_timewait_sock *twsk) struct net *twsk_net(const struct inet_timewait_sock *twsk)
{ {
#ifdef CONFIG_NET_NS return read_pnet(&twsk->tw_net);
return rcu_dereference_raw(twsk->tw_net); /* protected by locking, */
/* reference counting, */
/* initialization, or RCU. */
#else
return &init_net;
#endif
} }
static inline static inline
void twsk_net_set(struct inet_timewait_sock *twsk, struct net *net) void twsk_net_set(struct inet_timewait_sock *twsk, struct net *net)
{ {
#ifdef CONFIG_NET_NS write_pnet(&twsk->tw_net, net);
rcu_assign_pointer(twsk->tw_net, net);
#endif
} }
#endif /* _INET_TIMEWAIT_SOCK_ */ #endif /* _INET_TIMEWAIT_SOCK_ */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册