]> rtime.felk.cvut.cz Git - zynq/linux.git/commit
SUNRPC: Fix RPC receive hangs
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Tue, 4 Dec 2018 12:52:11 +0000 (07:52 -0500)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Wed, 5 Dec 2018 12:10:06 +0000 (07:10 -0500)
commitc443305529d1d3d3bee0d68fdd14ae89835e091f
tree0d66728dfa1f6c85bcffb69456c838788c515bfe
parent0a9a4304f3614e25d9de9b63502ca633c01c0d70
SUNRPC: Fix RPC receive hangs

The RPC code is occasionally hanging when the receive code fails to
empty the socket buffer due to a partial read of the data. When we
convert that to an EAGAIN, it appears we occasionally leave data in the
socket. The fix is to just keep reading until the socket returns
EAGAIN/EWOULDBLOCK.

Reported-by: Catalin Marinas <catalin.marinas@arm.com>
Reported-by: Cristian Marussi <cristian.marussi@arm.com>
Reported-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Tested-by: Catalin Marinas <catalin.marinas@arm.com>
Tested-by: Cristian Marussi <cristian.marussi@arm.com>
net/sunrpc/xprtsock.c