Re: [PATCH net] rxrpc: Fix handling of call quietly cancelled out on server

From: David Miller
Date: Mon Jun 04 2018 - 16:07:02 EST


From: David Howells <dhowells@xxxxxxxxxx>
Date: Sun, 03 Jun 2018 02:17:39 +0100

> Sometimes an in-progress call will stop responding on the fileserver when
> the fileserver quietly cancels the call with an internally marked abort
> (RX_CALL_DEAD), without sending an ABORT to the client.
>
> This causes the client's call to eventually expire from lack of incoming
> packets directed its way, which currently leads to it being cancelled
> locally with ETIME. Note that it's not currently clear as to why this
> happens as it's really hard to reproduce.
>
> The rotation policy implement by kAFS, however, doesn't differentiate
> between ETIME meaning we didn't get any response from the server and ETIME
> meaning the call got cancelled mid-flow. The latter leads to an oops when
> fetching data as the rotation partially resets the afs_read descriptor,
> which can result in a cleared page pointer being dereferenced because that
> page has already been filled.
...
> Signed-off-by: David Howells <dhowells@xxxxxxxxxx>

Applied, thanks David.