WSL2-Linux-Kernel/fs/nfs
Olga Kornievskaia 7f6023610b NFSv4.1: freeze the session table upon receiving NFS4ERR_BADSESSION
[ Upstream commit c907e72f58 ]

When the client received NFS4ERR_BADSESSION, it schedules recovery
and start the state manager thread which in turn freezes the
session table and does not allow for any new requests to use the
no-longer valid session. However, it is possible that before
the state manager thread runs, a new operation would use the
released slot that received BADSESSION and was therefore not
updated its sequence number. Such re-use of the slot can lead
the application errors.

Fixes: 5c441544f0 ("NFSv4.x: Handle bad/dead sessions correctly in nfs41_sequence_process()")
Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-07-23 13:47:16 +02:00
..
blocklayout
filelayout pNFS/filelayout: Fix coalescing test for single DS 2023-01-24 07:22:41 +01:00
flexfilelayout pNFS/flexfiles: Report RDMA connection errors to the server 2022-08-17 14:22:45 +02:00
Kconfig
Makefile
cache_lib.c
cache_lib.h
callback.c SUNRPC: Set rq_auth_stat in the pg_authenticate() callout 2021-08-10 14:18:35 -04:00
callback.h NFSv4.1: Fix uninitialised variable in devicenotify 2022-02-16 12:56:08 +01:00
callback_proc.c pNFS: Avoid a live lock condition in pnfs_update_layout() 2022-06-22 14:21:59 +02:00
callback_xdr.c NFS: remove unneeded check in decode_devicenotify_args() 2022-04-08 14:23:48 +02:00
client.c NFSv4.1 query for fs_location attr on a new file system 2022-02-16 12:56:09 +01:00
delegation.c NFSv4: Fix a potential state reclaim deadlock 2022-11-10 18:15:26 +01:00
delegation.h
dir.c NFS: Further optimisations for 'ls -l' 2022-09-15 11:30:03 +02:00
direct.c NFS: swap-out must always use STABLE writes. 2022-04-13 20:59:13 +02:00
dns_resolve.c
dns_resolve.h
export.c nfs: don't atempt blocking locks on nfs reexports 2021-08-26 15:32:10 -04:00
file.c NFSv4: keep state manager thread active if swap is enabled 2023-03-10 09:39:30 +01:00
fs_context.c nfs: fix broken handling of the softreval mount option 2022-05-18 10:26:49 +02:00
fscache-index.c
fscache.c NFS: Fix fscache read from NFS after cache error 2021-07-08 14:03:26 -04:00
fscache.h
getroot.c NFS: Create a new nfs_alloc_fattr_with_label() function 2022-06-09 10:23:17 +02:00
inode.c NFS: Fix another fsync() issue after a server reboot 2022-09-15 11:30:03 +02:00
internal.h NFS: Create a new nfs_alloc_fattr_with_label() function 2022-06-09 10:23:17 +02:00
io.c
iostat.h
mount_clnt.c
namespace.c NFS: Fix an Oops in nfs_d_automount() 2022-12-31 13:14:13 +01:00
netns.h
nfs.h
nfs2super.c
nfs2xdr.c NFS: Return valid errors from nfs2/3_decode_dirent() 2022-04-08 14:23:46 +02:00
nfs3_fs.h vfs: add rcu argument to ->get_acl() callback 2021-08-18 22:08:24 +02:00
nfs3acl.c vfs: add rcu argument to ->get_acl() callback 2021-08-18 22:08:24 +02:00
nfs3client.c Revert "pNFS: nfs3_set_ds_client should set NFS_CS_NOPING" 2022-08-17 14:22:45 +02:00
nfs3proc.c NFSv3: Delete duplicate judgement in nfs3_async_handle_jukebox 2021-08-27 16:36:21 -04:00
nfs3super.c
nfs3xdr.c NFS: Return valid errors from nfs2/3_decode_dirent() 2022-04-08 14:23:46 +02:00
nfs4_fs.h NFSv4: keep state manager thread active if swap is enabled 2023-03-10 09:39:30 +01:00
nfs4client.c nfs4: Fix kmemleak when allocate slot failed 2022-11-10 18:15:26 +01:00
nfs4file.c NFSv4.2 fix problems with __nfs42_ssc_open 2022-08-31 17:16:37 +02:00
nfs4getroot.c
nfs4idmap.c NFSv4: Fix races in the legacy idmapper upcall 2022-08-25 11:40:02 +02:00
nfs4idmap.h
nfs4namespace.c NFSv4: Fix free of uninitialized nfs4_label on referral lookup. 2022-11-03 23:59:10 +09:00
nfs4proc.c NFSv4.1: freeze the session table upon receiving NFS4ERR_BADSESSION 2023-07-23 13:47:16 +02:00
nfs4renewd.c
nfs4session.c
nfs4session.h
nfs4state.c NFSv4.1: Always send a RECLAIM_COMPLETE after establishing lease 2023-05-11 23:00:36 +09:00
nfs4super.c
nfs4sysctl.c
nfs4trace.c
nfs4trace.h nfs4trace: fix state manager flag printing 2023-03-10 09:39:30 +01:00
nfs4xdr.c NFSv4.2: Fix a memory stomp in decode_attr_security_label 2022-12-31 13:14:13 +01:00
nfs42.h
nfs42proc.c NFSv4.2: Fixup CLONE dest file size for zero-length count 2022-11-10 18:15:26 +01:00
nfs42xattr.c
nfs42xdr.c NFSv42: Don't fail clone() unless the OP_CLONE operation failed 2021-12-01 09:04:47 +01:00
nfsroot.c
nfstrace.c
nfstrace.h
pagelist.c NFSv4.1 mark qualified async operations as MOVEABLE tasks 2022-06-09 10:23:17 +02:00
pnfs.c pNFS: Avoid a live lock condition in pnfs_update_layout() 2022-06-22 14:21:59 +02:00
pnfs.h pNFS: Avoid a live lock condition in pnfs_update_layout() 2022-06-22 14:21:59 +02:00
pnfs_dev.c
pnfs_nfs.c NFS: nfsiod should not block forever in mempool_alloc() 2022-04-13 20:59:13 +02:00
proc.c NFS: NFSv2/v3 clients should never be setting NFS_CAP_XATTR 2022-04-08 14:22:52 +02:00
read.c NFS: Always provide aligned buffers to the RPC read layers 2021-08-30 13:21:38 -04:00
super.c NFSv4: Turn off open-by-filehandle and NFS re-export for NFSv4.0 2022-09-23 14:15:47 +02:00
symlink.c
sysctl.c
sysfs.c
sysfs.h
unlink.c NFSv4.1 mark qualified async operations as MOVEABLE tasks 2022-06-09 10:23:17 +02:00
write.c NFS: Fix another fsync() issue after a server reboot 2022-09-15 11:30:03 +02:00