Commit 569bc643 authored by Ursula Braun's avatar Ursula Braun Committed by David S. Miller

net/smc: no tx work trigger for fallback sockets

If TCP_NODELAY is set or TCP_CORK is reset, setsockopt triggers the
tx worker. This does not make sense, if the SMC socket switched to
the TCP fallback when the connection is created. This patch adds
the additional check for the fallback case.
Signed-off-by: default avatarUrsula Braun <ubraun@linux.ibm.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 7d6541fb
...@@ -1353,14 +1353,14 @@ static int smc_setsockopt(struct socket *sock, int level, int optname, ...@@ -1353,14 +1353,14 @@ static int smc_setsockopt(struct socket *sock, int level, int optname,
break; break;
case TCP_NODELAY: case TCP_NODELAY:
if (sk->sk_state != SMC_INIT && sk->sk_state != SMC_LISTEN) { if (sk->sk_state != SMC_INIT && sk->sk_state != SMC_LISTEN) {
if (val) if (val && !smc->use_fallback)
mod_delayed_work(system_wq, &smc->conn.tx_work, mod_delayed_work(system_wq, &smc->conn.tx_work,
0); 0);
} }
break; break;
case TCP_CORK: case TCP_CORK:
if (sk->sk_state != SMC_INIT && sk->sk_state != SMC_LISTEN) { if (sk->sk_state != SMC_INIT && sk->sk_state != SMC_LISTEN) {
if (!val) if (!val && !smc->use_fallback)
mod_delayed_work(system_wq, &smc->conn.tx_work, mod_delayed_work(system_wq, &smc->conn.tx_work,
0); 0);
} }
......
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