• David Howells's avatar
    afs: Fix abort on signal while waiting for call completion · a8939aac
    David Howells authored
    
    [ Upstream commit 954cd6dc ]
    
    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: 's avatarMarc Dionne <marc.c.dionne@auristor.com>
    Signed-off-by: 's avatarDavid Howells <dhowells@redhat.com>
    Signed-off-by: 's avatarSasha Levin <alexander.levin@verizon.com>
    Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    a8939aac
Name
Last commit
Last update
..
Kconfig Loading commit data...
Makefile Loading commit data...
afs.h Loading commit data...
afs_cm.h Loading commit data...
afs_fs.h Loading commit data...
afs_vl.h Loading commit data...
cache.c Loading commit data...
callback.c Loading commit data...
cell.c Loading commit data...
cmservice.c Loading commit data...
dir.c Loading commit data...
file.c Loading commit data...
flock.c Loading commit data...
fsclient.c Loading commit data...
inode.c Loading commit data...
internal.h Loading commit data...
main.c Loading commit data...
misc.c Loading commit data...
mntpt.c Loading commit data...
netdevices.c Loading commit data...
proc.c Loading commit data...
rxrpc.c Loading commit data...
security.c Loading commit data...
server.c Loading commit data...
super.c Loading commit data...
vlclient.c Loading commit data...
vlocation.c Loading commit data...
vnode.c Loading commit data...
volume.c Loading commit data...
write.c Loading commit data...