diff options
author | Karsten Graul <kgraul@linux.ibm.com> | 2018-07-25 16:35:32 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-07-26 07:25:53 +0200 |
commit | 603cc1498455cf57f5ca4483b600efb37ea2c56c (patch) | |
tree | ba933ac7ee9002bc65e53e6bfc868c363c63676a /net/smc/smc_diag.c | |
parent | net/smc: use correct vlan gid of RoCE device (diff) | |
download | linux-603cc1498455cf57f5ca4483b600efb37ea2c56c.tar.xz linux-603cc1498455cf57f5ca4483b600efb37ea2c56c.zip |
net/smc: provide fallback reason code
Remember the fallback reason code and the peer diagnosis code for
smc sockets, and provide them in smc_diag.c to the netlink interface.
And add more detailed reason codes.
Signed-off-by: Karsten Graul <kgraul@linux.ibm.com>
Signed-off-by: Ursula Braun <ubraun@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/smc/smc_diag.c')
-rw-r--r-- | net/smc/smc_diag.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/net/smc/smc_diag.c b/net/smc/smc_diag.c index a3cf7313a2d3..dbf64a93d68a 100644 --- a/net/smc/smc_diag.c +++ b/net/smc/smc_diag.c @@ -79,6 +79,7 @@ static int __smc_diag_dump(struct sock *sk, struct sk_buff *skb, struct nlattr *bc) { struct smc_sock *smc = smc_sk(sk); + struct smc_diag_fallback fallback; struct user_namespace *user_ns; struct smc_diag_msg *r; struct nlmsghdr *nlh; @@ -101,6 +102,11 @@ static int __smc_diag_dump(struct sock *sk, struct sk_buff *skb, if (smc_diag_msg_attrs_fill(sk, skb, r, user_ns)) goto errout; + fallback.reason = smc->fallback_rsn; + fallback.peer_diagnosis = smc->peer_diagnosis; + if (nla_put(skb, SMC_DIAG_FALLBACK, sizeof(fallback), &fallback) < 0) + goto errout; + if ((req->diag_ext & (1 << (SMC_DIAG_CONNINFO - 1))) && smc->conn.alert_token_local) { struct smc_connection *conn = &smc->conn; |