net: tracepoint: replace tcp_set_state tracepoint with inet_sock_set_state tracepoint
As sk_state is a common field for struct sock, so the state transition tracepoint should not be a TCP specific feature. Currently it traces all AF_INET state transition, so I rename this tracepoint to inet_sock_set_state tracepoint with some minor changes and move it into trace/events/sock.h. We dont need to create a file named trace/events/inet_sock.h for this one single tracepoint. Two helpers are introduced to trace sk_state transition - void inet_sk_state_store(struct sock *sk, int newstate); - void inet_sk_set_state(struct sock *sk, int state); As trace header should not be included in other header files, so they are defined in sock.c. The protocol such as SCTP maybe compiled as a ko, hence export inet_sk_set_state(). Signed-off-by: Yafang Shao <laoar.shao@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
d7b850a7de
commit
563e0bb0dc
@@ -121,6 +121,7 @@
|
||||
#endif
|
||||
#include <net/l3mdev.h>
|
||||
|
||||
#include <trace/events/sock.h>
|
||||
|
||||
/* The inetsw table contains everything that inet_create needs to
|
||||
* build a new socket.
|
||||
@@ -1220,6 +1221,19 @@ int inet_sk_rebuild_header(struct sock *sk)
|
||||
}
|
||||
EXPORT_SYMBOL(inet_sk_rebuild_header);
|
||||
|
||||
void inet_sk_set_state(struct sock *sk, int state)
|
||||
{
|
||||
trace_inet_sock_set_state(sk, sk->sk_state, state);
|
||||
sk->sk_state = state;
|
||||
}
|
||||
EXPORT_SYMBOL(inet_sk_set_state);
|
||||
|
||||
void inet_sk_state_store(struct sock *sk, int newstate)
|
||||
{
|
||||
trace_inet_sock_set_state(sk, sk->sk_state, newstate);
|
||||
smp_store_release(&sk->sk_state, newstate);
|
||||
}
|
||||
|
||||
struct sk_buff *inet_gso_segment(struct sk_buff *skb,
|
||||
netdev_features_t features)
|
||||
{
|
||||
|
Reference in New Issue
Block a user