Commit cbabf463 authored by Yafang Shao's avatar Yafang Shao Committed by David S. Miller

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: default avatarYafang Shao <laoar.shao@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent b0832e30
...@@ -232,7 +232,7 @@ void sctp_endpoint_free(struct sctp_endpoint *ep) ...@@ -232,7 +232,7 @@ void sctp_endpoint_free(struct sctp_endpoint *ep)
{ {
ep->base.dead = true; 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! */ /* Unlink this endpoint, so we can't find it again! */
sctp_unhash_endpoint(ep); sctp_unhash_endpoint(ep);
......
...@@ -878,12 +878,12 @@ static void sctp_cmd_new_state(struct sctp_cmd_seq *cmds, ...@@ -878,12 +878,12 @@ static void sctp_cmd_new_state(struct sctp_cmd_seq *cmds,
* successfully completed a connect() call. * successfully completed a connect() call.
*/ */
if (sctp_state(asoc, ESTABLISHED) && sctp_sstate(sk, CLOSED)) 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. */ /* Set the RCV_SHUTDOWN flag when a SHUTDOWN is received. */
if (sctp_state(asoc, SHUTDOWN_RECEIVED) && if (sctp_state(asoc, SHUTDOWN_RECEIVED) &&
sctp_sstate(sk, ESTABLISHED)) { sctp_sstate(sk, ESTABLISHED)) {
sk->sk_state = SCTP_SS_CLOSING; inet_sk_set_state(sk, SCTP_SS_CLOSING);
sk->sk_shutdown |= RCV_SHUTDOWN; sk->sk_shutdown |= RCV_SHUTDOWN;
} }
} }
......
...@@ -1544,7 +1544,7 @@ static void sctp_close(struct sock *sk, long timeout) ...@@ -1544,7 +1544,7 @@ static void sctp_close(struct sock *sk, long timeout)
lock_sock_nested(sk, SINGLE_DEPTH_NESTING); lock_sock_nested(sk, SINGLE_DEPTH_NESTING);
sk->sk_shutdown = SHUTDOWN_MASK; sk->sk_shutdown = SHUTDOWN_MASK;
sk->sk_state = SCTP_SS_CLOSING; inet_sk_set_state(sk, SCTP_SS_CLOSING);
ep = sctp_sk(sk)->ep; ep = sctp_sk(sk)->ep;
...@@ -4657,7 +4657,7 @@ static void sctp_shutdown(struct sock *sk, int how) ...@@ -4657,7 +4657,7 @@ static void sctp_shutdown(struct sock *sk, int how)
if (how & SEND_SHUTDOWN && !list_empty(&ep->asocs)) { if (how & SEND_SHUTDOWN && !list_empty(&ep->asocs)) {
struct sctp_association *asoc; struct sctp_association *asoc;
sk->sk_state = SCTP_SS_CLOSING; inet_sk_set_state(sk, SCTP_SS_CLOSING);
asoc = list_entry(ep->asocs.next, asoc = list_entry(ep->asocs.next,
struct sctp_association, asocs); struct sctp_association, asocs);
sctp_primitive_SHUTDOWN(net, asoc, NULL); sctp_primitive_SHUTDOWN(net, asoc, NULL);
...@@ -7513,13 +7513,13 @@ static int sctp_listen_start(struct sock *sk, int backlog) ...@@ -7513,13 +7513,13 @@ static int sctp_listen_start(struct sock *sk, int backlog)
* sockets. * sockets.
* *
*/ */
sk->sk_state = SCTP_SS_LISTENING; inet_sk_set_state(sk, SCTP_SS_LISTENING);
if (!ep->base.bind_addr.port) { if (!ep->base.bind_addr.port) {
if (sctp_autobind(sk)) if (sctp_autobind(sk))
return -EAGAIN; return -EAGAIN;
} else { } else {
if (sctp_get_port(sk, inet_sk(sk)->inet_num)) { 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; return -EADDRINUSE;
} }
} }
...@@ -8542,10 +8542,10 @@ static void sctp_sock_migrate(struct sock *oldsk, struct sock *newsk, ...@@ -8542,10 +8542,10 @@ static void sctp_sock_migrate(struct sock *oldsk, struct sock *newsk,
* is called, set RCV_SHUTDOWN flag. * is called, set RCV_SHUTDOWN flag.
*/ */
if (sctp_state(assoc, CLOSED) && sctp_style(newsk, TCP)) { 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; newsk->sk_shutdown |= RCV_SHUTDOWN;
} else { } else {
newsk->sk_state = SCTP_SS_ESTABLISHED; inet_sk_set_state(newsk, SCTP_SS_ESTABLISHED);
} }
release_sock(newsk); release_sock(newsk);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment