nvme-tcp: strict pdu pacing to avoid send stalls on TLS
authorHannes Reinecke <hare@kernel.org>
Thu, 18 Apr 2024 10:39:45 +0000 (12:39 +0200)
committerKeith Busch <kbusch@kernel.org>
Wed, 1 May 2024 09:58:43 +0000 (02:58 -0700)
commit50abcc179e0c9ca667feb223b26ea406d5c4c556
treee37a56bb277f702e6f127511f6b035fa40762178
parent505363957fad35f7aed9a2b0d8dad73451a80fb5
nvme-tcp: strict pdu pacing to avoid send stalls on TLS

TLS requires a strict pdu pacing via MSG_EOR to signal the end
of a record and subsequent encryption. If we do not set MSG_EOR
at the end of a sequence the record won't be closed, encryption
doesn't start, and we end up with a send stall as the message
will never be passed on to the TCP layer.
So do not check for the queue status when TLS is enabled but
rather make the MSG_MORE setting dependent on the current
request only.

Signed-off-by: Hannes Reinecke <hare@kernel.org>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Keith Busch <kbusch@kernel.org>
drivers/nvme/host/tcp.c