afs: Fix abort on signal while waiting for call completion
authorDavid Howells <dhowells@redhat.com>
Thu, 16 Mar 2017 16:27:49 +0000 (16:27 +0000)
committerDavid Howells <dhowells@redhat.com>
Thu, 16 Mar 2017 16:29:30 +0000 (16:29 +0000)
commit954cd6dc02a65065aecb7150962c0870c5b0e322
tree43c6255aee7edd3e7e0a1d5cc6998e368328df28
parent445783d0ec173a52bef2e9b129de7d716a19b9fa
afs: Fix abort on signal while waiting for call completion

Fix the way in which a call that's in progress and being waited for is
aborted in the case that EINTR is detected.  We should be sending
RX_USER_ABORT rather than RX_CALL_DEAD as the abort code.

Note that since the only two ways out of the loop are if the call completes
or if a signal happens, the kill-the-call clause after the loop has
finished can only happen in the case of EINTR.  This means that we only
have one abort case to deal with, not two, and the "KWC" case can never
happen and so can be deleted.

Note further that simply aborting the call isn't necessarily the best thing
here since at this point: the request has been entirely sent and it's
likely the server will do the operation anyway - whether we abort it or
not.  In future, we should punt the handling of the remainder of the call
off to a background thread.

Reported-by: Marc Dionne <marc.c.dionne@auristor.com>
Signed-off-by: David Howells <dhowells@redhat.com>
fs/afs/rxrpc.c