| From b70a5cc045197aad9c159042621baf3c015f6cc7 Mon Sep 17 00:00:00 2001 |
| From: Dust Li <dust.li@linux.alibaba.com> |
| Date: Tue, 1 Mar 2022 17:43:59 +0800 |
| Subject: net/smc: send directly on setting TCP_NODELAY |
| |
| From: Dust Li <dust.li@linux.alibaba.com> |
| |
| commit b70a5cc045197aad9c159042621baf3c015f6cc7 upstream. |
| |
| In commit ea785a1a573b("net/smc: Send directly when |
| TCP_CORK is cleared"), we don't use delayed work |
| to implement cork. |
| |
| This patch use the same algorithm, removes the |
| delayed work when setting TCP_NODELAY and send |
| directly in setsockopt(). This also makes the |
| TCP_NODELAY the same as TCP. |
| |
| Cc: Tony Lu <tonylu@linux.alibaba.com> |
| Signed-off-by: Dust Li <dust.li@linux.alibaba.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| net/smc/af_smc.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/net/smc/af_smc.c |
| +++ b/net/smc/af_smc.c |
| @@ -2621,8 +2621,8 @@ static int smc_setsockopt(struct socket |
| sk->sk_state != SMC_CLOSED) { |
| if (val) { |
| SMC_STAT_INC(smc, ndly_cnt); |
| - mod_delayed_work(smc->conn.lgr->tx_wq, |
| - &smc->conn.tx_work, 0); |
| + smc_tx_pending(&smc->conn); |
| + cancel_delayed_work(&smc->conn.tx_work); |
| } |
| } |
| break; |