net/smc: check for healthy link group resp. connections
If a problem for at least one connection of a link group is detected, the whole link group and all its connections are terminated. This patch adds a check for healthy link group when trying to reserve a work request, and checks for healthy connections before starting a tx worker. Signed-off-by: Ursula Braun <ubraun@linux.vnet.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
732720fafd
commit
1a0a04c7a8
@@ -86,7 +86,8 @@ 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;
|
||||
|
||||
if ((req->diag_ext & (1 << (SMC_DIAG_CONNINFO - 1))) && smc->conn.lgr) {
|
||||
if ((req->diag_ext & (1 << (SMC_DIAG_CONNINFO - 1))) &&
|
||||
smc->conn.alert_token_local) {
|
||||
struct smc_connection *conn = &smc->conn;
|
||||
struct smc_diag_conninfo cinfo = {
|
||||
.token = conn->alert_token_local,
|
||||
@@ -124,7 +125,8 @@ static int __smc_diag_dump(struct sock *sk, struct sk_buff *skb,
|
||||
goto errout;
|
||||
}
|
||||
|
||||
if ((req->diag_ext & (1 << (SMC_DIAG_LGRINFO - 1))) && smc->conn.lgr) {
|
||||
if ((req->diag_ext & (1 << (SMC_DIAG_LGRINFO - 1))) && smc->conn.lgr &&
|
||||
!list_empty(&smc->conn.lgr->list)) {
|
||||
struct smc_diag_lgrinfo linfo = {
|
||||
.role = smc->conn.lgr->role,
|
||||
.lnk[0].ibport = smc->conn.lgr->lnk[0].ibport,
|
||||
|
Reference in New Issue
Block a user