mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-02 15:18:19 +00:00
rxrpc: Don't try to resend the request if we're receiving the reply
[ Upstream commit114af61f88
] rxrpc has a timer to trigger resending of unacked data packets in a call. This is not cancelled when a client call switches to the receive phase on the basis that most calls don't last long enough for it to ever expire. However, if it *does* expire after we've started to receive the reply, we shouldn't then go into trying to retransmit or pinging the server to find out if an ack got lost. Fix this by skipping the resend code if we're into receiving the reply to a client call. Fixes:17926a7932
("[AF_RXRPC]: Provide secure RxRPC sockets for use by userspace and kernel both") Signed-off-by: David Howells <dhowells@redhat.com> cc: linux-afs@lists.infradead.org Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
369de57492
commit
a1c22c604c
1 changed files with 2 additions and 1 deletions
|
@ -406,7 +406,8 @@ void rxrpc_process_call(struct work_struct *work)
|
|||
goto recheck_state;
|
||||
}
|
||||
|
||||
if (test_and_clear_bit(RXRPC_CALL_EV_RESEND, &call->events)) {
|
||||
if (test_and_clear_bit(RXRPC_CALL_EV_RESEND, &call->events) &&
|
||||
call->state != RXRPC_CALL_CLIENT_RECV_REPLY) {
|
||||
rxrpc_resend(call, now);
|
||||
goto recheck_state;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue