]> git.baikalelectronics.ru Git - kernel.git/commit
SUNRPC: Unset RPC_TASK_NO_RETRANS_TIMEOUT for NULL RPCs
authorChuck Lever <chuck.lever@oracle.com>
Mon, 19 Jul 2021 14:48:10 +0000 (10:48 -0400)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Mon, 9 Aug 2021 20:32:27 +0000 (16:32 -0400)
commit6d754eb7cd19e172e9847f4aa1550f630de670b2
tree804ce5076c58ad5ccf1dd9486834883e04b3487e
parent5eb77ba7eaf69d6c88b036591d56fc2005ef74bb
SUNRPC: Unset RPC_TASK_NO_RETRANS_TIMEOUT for NULL RPCs

In some rare failure modes, the server is actually reading the
transport, but then just dropping the requests on the floor.
TCP_USER_TIMEOUT cannot detect that case.

Prevent such a stuck server from pinning client resources
indefinitely by ensuring that certain idempotent requests
(such as NULL) can time out even if the connection is still
operational.

Otherwise rpc_bind_new_program(), gss_destroy_cred(), or
rpc_clnt_test_and_add_xprt() can wait forever.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
net/sunrpc/clnt.c