linux-stable/fs/nfs
Trond Myklebust 5cc6b7acf5 NFSv4: Fix a deadlock between nfs4_open_recover_helper() and delegreturn
[ Upstream commit 51069e4aef ]

If we're asked to recover open state while a delegation return is
outstanding, then the state manager thread cannot use a cached open, so
if the server returns a delegation, we can end up deadlocked behind the
pending delegreturn.
To avoid this problem, let's just ask the server not to give us a
delegation unless we're explicitly reclaiming one.

Fixes: be36e185bd ("NFSv4: nfs4_open_recover_helper() must set share access")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-01-07 12:07:18 +01:00
..
blocklayout pnfs/blocklayout: off by one in bl_map_stripe() 2018-09-09 20:01:23 +02:00
filelayout NFS: fix an incorrect limit in filelayout_decode_layout() 2021-06-03 08:23:30 +02:00
flexfilelayout pnfs/flexfiles: Fix misplaced barrier in nfs4_ff_layout_prepare_ds 2021-11-26 11:48:37 +01:00
objlayout
Kconfig nfs: fix PNFS_FLEXFILE_LAYOUT Kconfig default 2021-03-30 14:41:39 +02:00
Makefile
cache_lib.c
cache_lib.h
callback.c nfs: make nfs4_cb_sv_ops static 2017-10-08 10:26:10 +02:00
callback.h
callback_proc.c NFS: Fix bool initialization/comparison 2020-02-14 16:31:07 -05:00
callback_xdr.c NFS: remove unneeded check in decode_devicenotify_args() 2022-04-20 09:06:37 +02:00
client.c NFS: Fix initialisation of nfs_client cl_flags field 2022-02-16 12:43:52 +01:00
delegation.c NFS: Fix a soft lockup in the delegation recovery code 2020-01-29 10:24:17 +01:00
delegation.h NFS: Fix a soft lockup in the delegation recovery code 2020-01-29 10:24:17 +01:00
dir.c NFS: LOOKUP_DIRECTORY is also ok with symlinks 2022-02-23 11:56:40 +01:00
direct.c SUNRPC reverting d03727b248 ("NFSv4 fix CLOSE not waiting for direct IO compeletion") 2020-07-31 16:44:02 +02:00
dns_resolve.c
dns_resolve.h
file.c SUNRPC reverting d03727b248 ("NFSv4 fix CLOSE not waiting for direct IO compeletion") 2020-07-31 16:44:02 +02:00
fscache-index.c
fscache.c
fscache.h
getroot.c
inode.c NFS: Do not report writeback errors in nfs_getattr() 2022-02-23 11:56:41 +01:00
internal.h NFS: nfs_igrab_and_active must first reference the superblock 2021-01-23 15:38:17 +01:00
io.c NFS: Fix a race between mmap() and O_DIRECT 2018-02-17 13:21:14 +01:00
iostat.h
mount_clnt.c
namespace.c NFS: fix nfs_path in case of a rename retry 2020-11-10 10:23:56 +01:00
netns.h
nfs.h
nfs2super.c
nfs2xdr.c
nfs3_fs.h
nfs3acl.c nfs: Fix potential posix_acl refcnt leak in nfs3_set_acl 2020-05-05 19:14:40 +02:00
nfs3client.c
nfs3proc.c nfs: fix acl memory leak of posix_acl_create() 2021-07-20 16:21:14 +02:00
nfs3super.c
nfs3xdr.c NFS: Correct size calculation for create reply length 2021-03-30 14:41:39 +02:00
nfs4_fs.h NFSv4: Fix a potential sleep while atomic in nfs4_do_reclaim() 2019-09-06 10:19:33 +02:00
nfs4client.c nfs4: Fix kmemleak when allocate slot failed 2022-11-10 15:46:05 +01:00
nfs4file.c NFSv4: Fix v4.0/v4.1 SEEK_DATA return -ENOTSUPP when set NFS_V4_2 config 2021-06-03 08:23:30 +02:00
nfs4getroot.c
nfs4idmap.c NFSv4: Fix possible 1-byte stack overflow in nfs_idmap_read_and_verify_message 2018-07-03 11:23:16 +02:00
nfs4idmap.h
nfs4namespace.c fs: Better permission checking for submounts 2017-03-15 10:02:44 +08:00
nfs4proc.c NFSv4: Fix a deadlock between nfs4_open_recover_helper() and delegreturn 2023-01-07 12:07:18 +01:00
nfs4renewd.c
nfs4session.c
nfs4session.h
nfs4state.c NFSv4.1: We must always send RECLAIM_COMPLETE after a reboot 2022-11-10 15:46:05 +01:00
nfs4super.c
nfs4sysctl.c nfs: Do not convert nfs_idmap_cache_timeout to jiffies 2018-05-30 07:50:20 +02:00
nfs4trace.c
nfs4trace.h NFS: Avoid RCU usage in tracepoints 2017-11-30 08:39:04 +00:00
nfs4xdr.c NFSv4.2: Fix a memory stomp in decode_attr_security_label 2023-01-07 12:07:18 +01:00
nfs42.h
nfs42proc.c NFSv42: Fix pagecache invalidation after COPY/CLONE 2021-12-08 08:45:05 +01:00
nfs42xdr.c NFSv42: Don't fail clone() unless the OP_CLONE operation failed 2021-12-08 08:45:03 +01:00
nfsroot.c
nfstrace.c
nfstrace.h
pagelist.c NFS: Don't corrupt the value of pg_bytes_written in nfs_do_recoalesce() 2021-06-03 08:23:30 +02:00
pnfs.c pNFS: Don't keep retrying if the server replied NFS4ERR_LAYOUTUNAVAILABLE 2022-06-25 11:45:17 +02:00
pnfs.h pNFS: On error, do not send LAYOUTGET until the LAYOUTRETURN has completed 2017-01-09 08:32:24 +01:00
pnfs_dev.c
pnfs_nfs.c pnfs/flexfiles: Fix misplaced barrier in nfs4_ff_layout_prepare_ds 2021-11-26 11:48:37 +01:00
proc.c NFSv2: Fix write regression 2019-09-21 07:14:16 +02:00
read.c
super.c fs/nfs: Fix nfs_parse_devname to not modify it's argument 2020-01-29 10:24:17 +01:00
symlink.c
sysctl.c
unlink.c
write.c NFS: Fix unstable write completion 2018-03-18 11:18:54 +01:00