linux/fs/nfs
Trond Myklebust b60b508f14 NFSv4: Fix a nfs4_state_manager() race
[ Upstream commit ed1cc05aa1 ]

If the NFS4CLNT_RUN_MANAGER flag got set just before we cleared
NFS4CLNT_MANAGER_RUNNING, then we might have won the race against
nfs4_schedule_state_manager(), and are responsible for handling the
recovery situation.

Fixes: aeabb3c961 ("NFSv4: Fix a NFSv4 state manager deadlock")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-10-10 22:03:01 +02:00
..
blocklayout nfs/blocklayout: Use the passed in gfp flags 2023-09-13 09:53:32 +02:00
filelayout pNFS/filelayout: treat GETDEVICEINFO errors as layout failure 2023-02-15 11:07:54 -05:00
flexfilelayout NFS/pNFS: Report EINVAL errors from connect() to the server 2023-10-06 13:15:44 +02:00
cache_lib.c
cache_lib.h
callback_proc.c pNFS: Avoid a live lock condition in pnfs_update_layout() 2022-06-06 11:53:55 -04:00
callback_xdr.c SUNRPC: Use per-CPU counters to tally server RPC counts 2023-02-20 09:20:32 -05:00
callback.c NFSD: Move svc_serv_ops::svo_function into struct svc_serv 2022-02-28 10:26:40 -05:00
callback.h NFSv4.1: Fix uninitialised variable in devicenotify 2022-01-06 14:00:20 -05:00
client.c NFS: Don't cleanup sysfs superblock entry if uninitialized 2023-06-29 14:25:35 -04:00
delegation.c nfs: use locks_inode_context helper 2022-11-30 05:08:10 -05:00
delegation.h
dir.c NFS: Convert kmap_atomic() to kmap_local_folio() 2023-05-19 16:50:05 -04:00
direct.c NFS: More fixes for nfs_direct_write_reschedule_io() 2023-10-06 13:15:44 +02:00
dns_resolve.c NFS: Avoid memcpy() run-time warning for struct sockaddr overflows 2022-10-27 15:52:10 -04:00
dns_resolve.h NFS: Avoid memcpy() run-time warning for struct sockaddr overflows 2022-10-27 15:52:10 -04:00
export.c nfsd: allow reaping files still under writeback 2023-04-26 09:04:59 -04:00
file.c - Yosry Ahmed brought back some cgroup v1 stats in OOM logs. 2023-06-28 10:28:11 -07:00
fs_context.c NFS: Add an "xprtsec=" NFS mount option 2023-06-19 12:30:17 -04:00
fscache.c NFS: set varaiable nfs_netfs_debug_id storage-class-specifier to static 2023-04-21 16:36:21 -04:00
fscache.h NFS: Convert buffered read paths to use netfs when fscache is enabled 2023-04-11 13:08:26 -04:00
getroot.c NFS: Remove the nfs4_label argument from nfs_setsecurity 2021-11-05 14:54:40 -04:00
inode.c nfs: don't report STATX_BTIME in ->getattr 2023-06-19 17:16:43 -04:00
internal.h NFSv4.2: Rework scratch handling for READ_PLUS (again) 2023-09-13 09:53:32 +02:00
io.c
iostat.h NFS: Remove all NFSIOS_FSCACHE counters due to conversion to netfs API 2023-04-11 13:08:26 -04:00
Kconfig NFS: Configure support for netfs when NFS fscache is configured 2023-04-11 13:00:02 -04:00
Makefile nfs: Convert to new fscache volume/cookie API 2022-01-10 11:53:25 +00:00
mount_clnt.c NFS: Avoid memcpy() run-time warning for struct sockaddr overflows 2022-10-27 15:52:10 -04:00
namespace.c fs: port ->getattr() to pass mnt_idmap 2023-01-19 09:24:25 +01:00
netns.h
nfs2super.c
nfs2xdr.c NFS: Guard against READDIR loop when entry names exceed MAXNAMELEN 2023-09-13 09:53:33 +02:00
nfs3_fs.h fs: drop unused posix acl handlers 2023-03-06 09:57:12 +01:00
nfs3acl.c Mainly singleton patches all over the place. Series of note are: 2023-04-27 19:57:00 -07:00
nfs3client.c NFS: add a sysfs link to the acl rpc_client 2023-06-19 15:06:40 -04:00
nfs3proc.c fs: rename current get acl method 2022-10-20 10:13:27 +02:00
nfs3super.c fs: drop unused posix acl handlers 2023-03-06 09:57:12 +01:00
nfs3xdr.c NFS: Guard against READDIR loop when entry names exceed MAXNAMELEN 2023-09-13 09:53:33 +02:00
nfs4_fs.h filelock: move file locking definitions to separate header file 2023-01-11 06:52:32 -05:00
nfs4client.c NFSv4.1: fix pnfs MDS=DS session trunking 2023-10-06 13:15:44 +02:00
nfs4file.c nfs: Provide a splice-read wrapper 2023-05-24 08:42:16 -06:00
nfs4getroot.c
nfs4idmap.c cred: Do not default to init_cred in prepare_kernel_cred() 2022-11-01 10:04:52 -07:00
nfs4idmap.h
nfs4namespace.c NFS: Avoid memcpy() run-time warning for struct sockaddr overflows 2022-10-27 15:52:10 -04:00
nfs4proc.c NFSv4: Fix a state manager thread deadlock regression 2023-10-06 13:16:24 +02:00
nfs4renewd.c
nfs4session.c NFSv4: Sanity check the parameters in nfs41_update_target_slotid() 2021-11-07 09:23:14 -05:00
nfs4session.h NFSv4: Sanity check the parameters in nfs41_update_target_slotid() 2021-11-07 09:23:14 -05:00
nfs4state.c NFSv4: Fix a nfs4_state_manager() race 2023-10-10 22:03:01 +02:00
nfs4super.c
nfs4sysctl.c nfs: simplify two-level sysctl registration for nfs4_cb_sysctls 2023-04-13 11:49:35 -07:00
nfs4trace.c
nfs4trace.h nfs4trace: fix state manager flag printing 2023-02-14 15:43:57 -05:00
nfs4xdr.c NFSv4.2: Fix a memory stomp in decode_attr_security_label 2022-11-27 22:09:59 -05:00
nfs42.h NFSv4.2: Rework scratch handling for READ_PLUS (again) 2023-09-13 09:53:32 +02:00
nfs42proc.c NFSv4.2: fix handling of COPY ERR_OFFLOAD_NO_REQ 2023-09-13 09:53:33 +02:00
nfs42xattr.c NFSv4.2: fix wrong shrinker_id 2023-06-19 15:10:45 -04:00
nfs42xdr.c NFSv4.2: Rework scratch handling for READ_PLUS (again) 2023-09-13 09:53:32 +02:00
nfs.h
nfsroot.c NFS: Prefer strscpy over strlcpy calls 2023-05-22 12:34:41 -07:00
nfstrace.c
nfstrace.h NFS: Remove fscache specific trace points and NFS_INO_FSCACHE bit 2023-04-11 13:08:27 -04:00
pagelist.c NFS: Convert buffered read paths to use netfs when fscache is enabled 2023-04-11 13:08:26 -04:00
pnfs_dev.c NFSv4/pnfs: minor fix for cleanup path in nfs4_get_device_info 2023-09-19 12:30:12 +02:00
pnfs_nfs.c pNFS: Fix assignment of xprtdata.cred 2023-09-13 09:53:33 +02:00
pnfs.c pNFS/filelayout: treat GETDEVICEINFO errors as layout failure 2023-02-15 11:07:54 -05:00
pnfs.h NFS: Convert buffered writes to use folios 2023-02-14 14:22:32 -05:00
proc.c NFS: NFSv2/v3 clients should never be setting NFS_CAP_XATTR 2022-02-25 18:50:13 -05:00
read.c NFSv4.2: Rework scratch handling for READ_PLUS (again) 2023-09-13 09:53:32 +02:00
super.c NFS: add superblock sysfs entries 2023-06-19 15:03:48 -04:00
symlink.c fs: Change the type of filler_t 2022-05-09 16:36:48 -04:00
sysctl.c nfs: simplify two-level sysctl registration for nfs_cb_sysctls 2023-04-13 11:49:35 -07:00
sysfs.c NFS: Fix sysfs server name memory leak 2023-08-19 10:26:29 -04:00
sysfs.h NFS: Add sysfs links to sunrpc clients for nfs_clients 2023-06-19 15:04:13 -04:00
unlink.c NFS: Fix a race in nfs_call_unlink() 2022-11-27 22:10:00 -05:00
write.c NFS: Use the correct commit info in nfs_join_page_group() 2023-10-06 13:15:44 +02:00