forked from Minki/linux
net: tracepoint: using sock_set_state tracepoint to trace SCTP state transition
With changes in inet_ files, SCTP state transitions are traced with inet_sock_set_state tracepoint. As SCTP state names, i.e. SCTP_SS_CLOSED, SCTP_SS_ESTABLISHED, have the same value with TCP state names. So the output info still print the TCP state names, that makes the code easy. Signed-off-by: Yafang Shao <laoar.shao@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b0832e3005
commit
cbabf46364
@ -232,7 +232,7 @@ void sctp_endpoint_free(struct sctp_endpoint *ep)
|
||||
{
|
||||
ep->base.dead = true;
|
||||
|
||||
ep->base.sk->sk_state = SCTP_SS_CLOSED;
|
||||
inet_sk_set_state(ep->base.sk, SCTP_SS_CLOSED);
|
||||
|
||||
/* Unlink this endpoint, so we can't find it again! */
|
||||
sctp_unhash_endpoint(ep);
|
||||
|
@ -878,12 +878,12 @@ static void sctp_cmd_new_state(struct sctp_cmd_seq *cmds,
|
||||
* successfully completed a connect() call.
|
||||
*/
|
||||
if (sctp_state(asoc, ESTABLISHED) && sctp_sstate(sk, CLOSED))
|
||||
sk->sk_state = SCTP_SS_ESTABLISHED;
|
||||
inet_sk_set_state(sk, SCTP_SS_ESTABLISHED);
|
||||
|
||||
/* Set the RCV_SHUTDOWN flag when a SHUTDOWN is received. */
|
||||
if (sctp_state(asoc, SHUTDOWN_RECEIVED) &&
|
||||
sctp_sstate(sk, ESTABLISHED)) {
|
||||
sk->sk_state = SCTP_SS_CLOSING;
|
||||
inet_sk_set_state(sk, SCTP_SS_CLOSING);
|
||||
sk->sk_shutdown |= RCV_SHUTDOWN;
|
||||
}
|
||||
}
|
||||
|
@ -1544,7 +1544,7 @@ static void sctp_close(struct sock *sk, long timeout)
|
||||
|
||||
lock_sock_nested(sk, SINGLE_DEPTH_NESTING);
|
||||
sk->sk_shutdown = SHUTDOWN_MASK;
|
||||
sk->sk_state = SCTP_SS_CLOSING;
|
||||
inet_sk_set_state(sk, SCTP_SS_CLOSING);
|
||||
|
||||
ep = sctp_sk(sk)->ep;
|
||||
|
||||
@ -4657,7 +4657,7 @@ static void sctp_shutdown(struct sock *sk, int how)
|
||||
if (how & SEND_SHUTDOWN && !list_empty(&ep->asocs)) {
|
||||
struct sctp_association *asoc;
|
||||
|
||||
sk->sk_state = SCTP_SS_CLOSING;
|
||||
inet_sk_set_state(sk, SCTP_SS_CLOSING);
|
||||
asoc = list_entry(ep->asocs.next,
|
||||
struct sctp_association, asocs);
|
||||
sctp_primitive_SHUTDOWN(net, asoc, NULL);
|
||||
@ -7513,13 +7513,13 @@ static int sctp_listen_start(struct sock *sk, int backlog)
|
||||
* sockets.
|
||||
*
|
||||
*/
|
||||
sk->sk_state = SCTP_SS_LISTENING;
|
||||
inet_sk_set_state(sk, SCTP_SS_LISTENING);
|
||||
if (!ep->base.bind_addr.port) {
|
||||
if (sctp_autobind(sk))
|
||||
return -EAGAIN;
|
||||
} else {
|
||||
if (sctp_get_port(sk, inet_sk(sk)->inet_num)) {
|
||||
sk->sk_state = SCTP_SS_CLOSED;
|
||||
inet_sk_set_state(sk, SCTP_SS_CLOSED);
|
||||
return -EADDRINUSE;
|
||||
}
|
||||
}
|
||||
@ -8542,10 +8542,10 @@ static void sctp_sock_migrate(struct sock *oldsk, struct sock *newsk,
|
||||
* is called, set RCV_SHUTDOWN flag.
|
||||
*/
|
||||
if (sctp_state(assoc, CLOSED) && sctp_style(newsk, TCP)) {
|
||||
newsk->sk_state = SCTP_SS_CLOSED;
|
||||
inet_sk_set_state(newsk, SCTP_SS_CLOSED);
|
||||
newsk->sk_shutdown |= RCV_SHUTDOWN;
|
||||
} else {
|
||||
newsk->sk_state = SCTP_SS_ESTABLISHED;
|
||||
inet_sk_set_state(newsk, SCTP_SS_ESTABLISHED);
|
||||
}
|
||||
|
||||
release_sock(newsk);
|
||||
|
Loading…
Reference in New Issue
Block a user