If a writer blocked condition is received without data, the current consumer cursor is immediately sent. Servers could already receive this condition in state SMC_INIT without finished tx-setup. This patch avoids sending a consumer cursor update in this case.
Unified · Split
| @@ -233,7 +233,8 @@ static void smc_cdc_msg_recv_action(struct smc_sock *smc, · 232 unmodified lines | ||
| 233 | 233 | /* force immediate tx of current consumer cursor, but |
| 234 | 234 | * under send_lock to guarantee arrival in seqno-order |
| 235 | 235 | */ |
| 236 | − smc_tx_sndbuf_nonempty(conn); | |
| 236 | + if (smc->sk.sk_state != SMC_INIT) | |
| 237 | + smc_tx_sndbuf_nonempty(conn); | |
| 237 | 238 | } |
| 238 | 239 | } |
| 239 | 240 | |