1
0
Fork 0
remarkable-linux/fs/afs
David Howells a8939aac82 afs: Fix abort on signal while waiting for call completion
[ Upstream commit 954cd6dc02 ]

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>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-12-20 10:07:25 +01:00
..
Kconfig fs/afs: remove depends on CONFIG_EXPERIMENTAL 2013-01-21 14:39:04 -08:00
Makefile FS-Cache: Make kAFS use FS-Cache 2009-04-03 16:42:41 +01:00
afs.h afs: Support interacting with multiple user namespaces 2013-02-13 06:00:51 -08:00
afs_cm.h afs: support the CB.ProbeUuid RPC op 2008-04-29 08:06:26 -07:00
afs_fs.h AFS: implement file locking 2007-07-16 09:05:43 -07:00
afs_vl.h AFS: Fix silly characters in a comment 2011-07-20 20:48:03 -04:00
cache.c Fix common misspellings 2011-03-31 11:26:23 -03:00
callback.c afs: Migrate vlocation fields to 64-bit 2017-12-20 10:07:24 +01:00
cell.c FS-Cache: Provide the ability to enable/disable cookies 2013-09-27 18:40:25 +01:00
cmservice.c afs: Deal with an empty callback array 2017-12-20 10:07:24 +01:00
dir.c fs: rename "rename2" i_op to "rename" 2016-09-27 11:03:58 +02:00
file.c afs: Flush outstanding writes when an fd is closed 2017-12-20 10:07:24 +01:00
flock.c fs/afs/flock: Remove deprecated create_singlethread_workqueue 2016-09-04 21:41:39 +01:00
fsclient.c afs: Populate and use client modification time 2017-12-20 10:07:24 +01:00
inode.c afs: Populate and use client modification time 2017-12-20 10:07:24 +01:00
internal.h afs: Prevent callback expiry timer overflow 2017-12-20 10:07:24 +01:00
main.c afs: Need linux/random.h 2016-08-30 16:07:53 +01:00
misc.c afs: Invalid op ID should abort with RXGEN_OPCODE 2017-12-20 10:07:24 +01:00
mntpt.c fs: Better permission checking for submounts 2017-03-15 10:02:44 +08:00
netdevices.c afs: BUG to BUG_ON changes 2009-04-09 10:41:19 -07:00
proc.c convert a bunch of open-coded instances of memdup_user_nul() 2016-01-04 10:26:58 -05:00
rxrpc.c afs: Fix abort on signal while waiting for call completion 2017-12-20 10:07:25 +01:00
security.c afs: Adjust mode bits processing 2017-12-20 10:07:24 +01:00
server.c afs: Migrate vlocation fields to 64-bit 2017-12-20 10:07:24 +01:00
super.c mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros 2016-04-04 10:41:08 -07:00
vlclient.c rxrpc: Don't expose skbs to in-kernel users [ver #2] 2016-09-01 16:43:27 -07:00
vlocation.c afs: Migrate vlocation fields to 64-bit 2017-12-20 10:07:24 +01:00
vnode.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
volume.c fs: introduce f_op->mmap_capabilities for nommu mmap support 2015-01-20 14:02:58 -07:00
write.c afs: Fix afs_kill_pages() 2017-12-20 10:07:25 +01:00