rxrpc: Fix missing start of call timeout
authorDavid Howells <dhowells@redhat.com>
Thu, 10 May 2018 22:26:00 +0000 (23:26 +0100)
committerDavid Howells <dhowells@redhat.com>
Thu, 10 May 2018 22:26:00 +0000 (23:26 +0100)
commitc54e43d752c7187595c8c62a231e0b0d53c7fded
tree3e813d2af3416daf069285dbaefced6e2cc89982
parent4a026da91caaa36004a53a844dd00959370ea8fc
rxrpc: Fix missing start of call timeout

The expect_rx_by call timeout is supposed to be set when a call is started
to indicate that we need to receive a packet by that point.  This is
currently put back every time we receive a packet, but it isn't started
when we first send a packet.  Without this, the call may wait forever if
the server doesn't deign to reply.

Fix this by setting the timeout upon a successful UDP sendmsg call for the
first DATA packet.  The timeout is initiated only for initial transmission
and not for subsequent retries as we don't want the retry mechanism to
extend the timeout indefinitely.

Fixes: a158bdd3247b ("rxrpc: Fix call timeouts")
Reported-by: Marc Dionne <marc.dionne@auristor.com>
Signed-off-by: David Howells <dhowells@redhat.com>
net/rxrpc/ar-internal.h
net/rxrpc/input.c
net/rxrpc/output.c
net/rxrpc/sendmsg.c