]> git.ipfire.org Git - thirdparty/linux.git/commit
nvme-tcp: fix I/O stalls on congested sockets
authorHannes Reinecke <hare@kernel.org>
Wed, 28 May 2025 06:45:34 +0000 (08:45 +0200)
committerChristoph Hellwig <hch@lst.de>
Wed, 4 Jun 2025 08:02:23 +0000 (10:02 +0200)
commitf42d4796ee100fade86086d1cf98537fb4d326c8
tree833201a31a9c2cc485107d4eeec935d4117bfd37
parent0bf04c874fcb1ae46a863034296e4b33d8fbd66c
nvme-tcp: fix I/O stalls on congested sockets

When the socket is busy processing nvme_tcp_try_recv() might return
-EAGAIN, but this doesn't automatically imply that the sending side is
blocked, too.  So check if there are pending requests once
nvme_tcp_try_recv() returns -EAGAIN and continue with the sending loop
to avoid I/O stalls.

Signed-off-by: Hannes Reinecke <hare@kernel.org>
Acked-by: Chris Leech <cleech@redhat.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/host/tcp.c