linux-stable/fs/afs
David Howells f49b594df3 afs: Keep a record of the current fileserver endpoint state
Keep a record of the current fileserver endpoint state, including the probe
state, and replace it when a new probe is started rather than just
squelching the old state and overwriting it.  Clearance of the old state
can cause a race if there's another thread also currently trying to
communicate with that server.

It appears that this race might be the culprit for some occasions where
kafs complains about invalid data in the RPC reply because the rotation
algorithm fell all the way through without actually issuing an RPC call and
the error return got filled in from the probe state (which has a zero error
recorded).  Whatever happens to be in the caller's reply buffer is then
taken as the response.

Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
2024-01-01 16:37:27 +00:00
..
addr_list.c afs: Remove the unimplemented afs_cmp_addr_list() 2024-01-01 16:37:26 +00:00
addr_prefs.c afs: Mark address lists with configured priorities 2024-01-01 16:37:27 +00:00
afs.h rxrpc: Fix timeout of a call that hasn't yet been granted a channel 2023-05-01 07:43:19 +01:00
afs_cm.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
afs_fs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
afs_vl.h afs: Implement client support for the YFSVL.GetCellName RPC op 2020-06-04 15:37:57 +01:00
callback.c afs: fix the usage of read_seqbegin_or_lock() in afs_lookup_volume_rcu() 2023-12-24 15:22:47 +00:00
cell.c afs: Fix overwriting of result of DNS query 2023-12-21 09:57:43 -08:00
cmservice.c rxrpc, afs: Allow afs to pin rxrpc_peer objects 2023-12-24 15:22:50 +00:00
dir.c afs: Simplify error handling 2023-12-24 15:22:53 +00:00
dir_edit.c afs: fix the afs_dir_get_folio return value 2023-05-06 10:10:08 -07:00
dir_silly.c afs: Simplify error handling 2023-12-24 15:22:53 +00:00
dynroot.c afs: Fix dynamic root lookup DNS check 2023-12-20 11:57:47 +00:00
file.c afs: Simplify error handling 2023-12-24 15:22:53 +00:00
flock.c fs: remove locks_inode 2023-01-11 06:52:43 -05:00
fs_operation.c afs: Keep a record of the current fileserver endpoint state 2024-01-01 16:37:27 +00:00
fs_probe.c afs: Keep a record of the current fileserver endpoint state 2024-01-01 16:37:27 +00:00
fsclient.c afs: Keep a record of the current fileserver endpoint state 2024-01-01 16:37:27 +00:00
inode.c afs: Wrap most op->error accesses with inline funcs 2023-12-24 15:22:53 +00:00
internal.h afs: Keep a record of the current fileserver endpoint state 2024-01-01 16:37:27 +00:00
Kconfig afs: Convert afs to use the new fscache API 2022-01-07 13:44:47 +00:00
main.c afs: Provide a way to configure address priorities 2024-01-01 16:37:26 +00:00
Makefile afs: Provide a way to configure address priorities 2024-01-01 16:37:26 +00:00
misc.c afs: Simplify error handling 2023-12-24 15:22:53 +00:00
mntpt.c afs: Remove check of PageError 2022-06-29 08:51:06 -04:00
proc.c afs: Keep a record of the current fileserver endpoint state 2024-01-01 16:37:27 +00:00
protocol_afs.h afs: Fix corruption in reads at fpos 2G-4G from an OpenAFS server 2021-09-13 09:14:21 +01:00
protocol_uae.h afs: Add support for the UAE error table 2019-06-28 18:37:53 +01:00
protocol_yfs.h afs: Fix corruption in reads at fpos 2G-4G from an OpenAFS server 2021-09-13 09:14:21 +01:00
rotate.c afs: Keep a record of the current fileserver endpoint state 2024-01-01 16:37:27 +00:00
rxrpc.c afs: Fold the afs_addr_cursor struct in 2023-12-24 15:22:55 +00:00
security.c fs: port ->permission() to pass mnt_idmap 2023-01-19 09:24:28 +01:00
server.c afs: Keep a record of the current fileserver endpoint state 2024-01-01 16:37:27 +00:00
server_list.c afs: Fix afs_server_list to be cleaned up with RCU 2023-11-17 07:55:27 +00:00
super.c afs: Mark a superblock for an R/O or Backup volume as SB_RDONLY 2023-11-24 14:52:24 +00:00
vl_alias.c afs: Keep a record of the current fileserver endpoint state 2024-01-01 16:37:27 +00:00
vl_list.c afs: Dispatch vlserver probes in priority order 2024-01-01 16:37:27 +00:00
vl_probe.c afs: Keep a record of the current fileserver endpoint state 2024-01-01 16:37:27 +00:00
vl_rotate.c afs: Add some more info to /proc/net/afs/servers 2024-01-01 16:36:58 +00:00
vlclient.c afs: Keep a record of the current fileserver endpoint state 2024-01-01 16:37:27 +00:00
volume.c afs: Fix use-after-free due to get/remove race in volume tree 2023-12-21 10:16:07 -08:00
write.c afs: Wrap most op->error accesses with inline funcs 2023-12-24 15:22:53 +00:00
xattr.c afs: move afs_xattr_handlers to .rodata 2023-10-09 16:24:16 +02:00
xdr_fs.h afs: Fix directory entry size calculation 2021-01-04 12:25:19 +00:00
yfsclient.c afs: Use the operation issue time instead of the reply time for callbacks 2022-09-01 11:44:13 +01:00