linux-stable/drivers/nvme/target
Sagi Grimberg 98fd5c7237 nvmet-tcp: set MSG_MORE only if we actually have more to send
When we send PDU data, we want to optimize the tcp stack
operation if we have more data to send. So when we set MSG_MORE
when:
- We have more fragments coming in the batch, or
- We have a more data to send in this PDU
- We don't have a data digest trailer
- We optimize with the SUCCESS flag and omit the NVMe completion
  (used if sq_head pointer update is disabled)

This addresses a regression in QD=1 with SUCCESS flag optimization
as we unconditionally set MSG_MORE when we didn't actually have
more data to send.

Fixes: 7058329538 ("nvmet-tcp: implement C2HData SUCCESS optimization")
Reported-by: Mark Wunderlich <mark.wunderlich@intel.com>
Tested-by: Mark Wunderlich <mark.wunderlich@intel.com>
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Keith Busch <kbusch@kernel.org>
2020-03-21 04:37:53 +09:00
..
admin-cmd.c nvmet: fix per feat data len for get_feature 2020-01-10 08:55:50 -07:00
configfs.c nvmet: Fix use-after-free bug when a port is removed 2019-07-31 17:57:06 -07:00
core.c nvmet: update AEN list and array at one place 2020-02-05 01:56:10 +09:00
discovery.c nvmet: fill discovery controller sn, fr and mn correctly 2019-11-04 10:56:42 -07:00
fabrics-cmd.c nvmet: Fix controller use after free 2020-02-05 01:13:09 +09:00
fc.c nvmet: Open code nvmet_req_execute() 2019-11-04 10:56:42 -07:00
fcloop.c nvme_fc: add module to ops template to allow module references 2019-11-27 02:48:27 +09:00
io-cmd-bdev.c nvmet: fix dsm failure when payload does not match sgl descriptor 2020-02-04 03:00:24 +09:00
io-cmd-file.c nvmet: fix dsm failure when payload does not match sgl descriptor 2020-02-04 03:00:24 +09:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
loop.c nvmet-loop: Avoid preallocating big SGL for data 2019-11-27 02:14:19 +09:00
Makefile nvmet: introduce target-side trace 2019-06-21 11:15:46 +02:00
nvmet.h nvmet: fix dsm failure when payload does not match sgl descriptor 2020-02-04 03:00:24 +09:00
rdma.c nvmet: Open code nvmet_req_execute() 2019-11-04 10:56:42 -07:00
tcp.c nvmet-tcp: set MSG_MORE only if we actually have more to send 2020-03-21 04:37:53 +09:00
trace.c nvmet: trace: parse Get LBA Status command in detail 2019-08-29 12:55:01 -07:00
trace.h nvmet: introduce target-side trace 2019-06-21 11:15:46 +02:00