linux/fs/nfs
Trond Myklebust fbf4bcc9a8 NFS: Fix an ABBA spinlock issue in pnfs_update_layout()
We need to drop the inode spinlock while calling nfs4_select_rw_stateid(),
since nfs4_copy_delegation_stateid() could take the delegation lock.
Note that it is safe to do this, since all other calls to
pnfs_update_layout() for that inode will find themselves blocked by
the lock we hold on NFS_LAYOUT_FIRST_LAYOUTGET.

Fixes: fc51b1cf39 ("NFS: Beware when dereferencing the delegation cred")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
2020-04-13 15:55:21 -04:00
..
blocklayout NFSv4: Ensure layout headers are RCU safe 2020-03-16 08:34:29 -04:00
filelayout NFS/pNFS: Clean up pNFS commit operations 2020-03-27 16:34:35 -04:00
flexfilelayout pNFS/flexfiles: Specify the layout segment range in LAYOUTGET 2020-03-27 16:34:35 -04:00
Kconfig Documentation: nfsroot.rst: Fix references to nfsroot.rst 2020-03-02 13:11:46 -07:00
Makefile NFS: Move mount parameterisation bits into their own file 2020-01-15 10:15:17 -05:00
cache_lib.c
cache_lib.h
callback.c
callback.h NFSv4: Add support for CB_RECALL_ANY for flexfiles layouts 2020-03-16 08:34:30 -04:00
callback_proc.c NFSv4: Add support for CB_RECALL_ANY for flexfiles layouts 2020-03-16 08:34:30 -04:00
callback_xdr.c NFS4: Report callback authentication errors 2020-01-15 10:54:31 -05:00
client.c nfs: add minor version to nfs_server_key for fscache 2020-02-25 13:53:24 -05:00
delegation.c NFS: Beware when dereferencing the delegation cred 2020-04-03 18:26:02 -04:00
delegation.h NFSv4: Ensure the delegation is pinned in nfs_do_return_delegation() 2020-02-13 16:18:50 -05:00
dir.c NFS client updates for Linux 5.7 2020-04-07 13:51:39 -07:00
direct.c NFS: Try to join page groups before an O_DIRECT retransmission 2020-04-01 13:37:57 -04:00
dns_resolve.c nfsd: export upcalls must not return ESTALE when mountd is down 2020-03-16 12:04:33 -04:00
dns_resolve.h
export.c NFS: Add a tracepoint in nfs_fh_to_dentry() 2019-11-03 21:28:46 -05:00
file.c NFS: Fix up fsync() when the server rebooted 2020-01-15 10:54:32 -05:00
fs_context.c NFS: Fix a few constant_table array definitions 2020-04-02 18:37:13 -04:00
fscache-index.c nfs: fscache: use timespec64 in inode auxdata 2020-01-15 10:54:30 -05:00
fscache.c nfs: add minor version to nfs_server_key for fscache 2020-02-25 13:53:24 -05:00
fscache.h nfs: fscache: use timespec64 in inode auxdata 2020-01-15 10:54:30 -05:00
getroot.c NFS: Ensure security label is set for root inode 2020-03-30 19:56:50 -04:00
inode.c NFS: Clean up process of marking inode stale. 2020-04-06 13:56:33 -04:00
internal.h NFS: Remove the redundant function nfs_pgio_has_mirroring() 2020-04-01 13:37:56 -04:00
io.c
iostat.h
mount_clnt.c NFS: remove unused macros 2020-02-03 10:43:06 -05:00
namespace.c NFS: Add a module parameter to set nfs_mountpoint_expiry_timeout 2020-04-02 18:53:59 -04:00
netns.h
nfs.h
nfs2super.c
nfs2xdr.c nfs: remove timespec from xdr_encode_nfstime 2020-01-15 10:54:30 -05:00
nfs3_fs.h NFS: Additional refactoring for fs_context conversion 2020-01-15 10:15:17 -05:00
nfs3acl.c
nfs3client.c NFS: Additional refactoring for fs_context conversion 2020-01-15 10:15:17 -05:00
nfs3proc.c NFS: Add softreval behaviour to nfs_lookup_revalidate() 2020-01-24 16:51:13 -05:00
nfs3super.c
nfs3xdr.c NFS/pnfs: Fix pnfs_generic_prepare_to_resend_writes() 2020-01-15 10:54:32 -05:00
nfs4_fs.h NFSv4: Add support for CB_RECALL_ANY for flexfiles layouts 2020-03-16 08:34:30 -04:00
nfs4client.c nfs: add minor version to nfs_server_key for fscache 2020-02-25 13:53:24 -05:00
nfs4file.c NFSv4.2: error out when relink swapfile 2020-03-16 10:14:30 -04:00
nfs4getroot.c
nfs4idmap.c
nfs4idmap.h
nfs4namespace.c nfs: Fix up documentation in nfs_follow_referral() and nfs_do_submount() 2020-03-17 18:40:57 -04:00
nfs4proc.c NFS client updates for Linux 5.7 2020-04-07 13:51:39 -07:00
nfs4renewd.c NFSv4.0: nfs4_do_fsinfo() should not do implicit lease renewals 2020-02-04 12:27:55 -05:00
nfs4session.c
nfs4session.h
nfs4state.c NFSv4: Add support for CB_RECALL_ANY for flexfiles layouts 2020-03-16 08:34:30 -04:00
nfs4super.c NFS: Attach supplementary error information to fs_context. 2020-01-15 10:15:17 -05:00
nfs4sysctl.c
nfs4trace.c pNFS/flexfiles: Add tracing for layout errors 2020-01-15 10:54:33 -05:00
nfs4trace.h NFSv4: Add support for CB_RECALL_ANY for flexfiles layouts 2020-03-16 08:34:30 -04:00
nfs4xdr.c NFS/pnfs: Fix pnfs_generic_prepare_to_resend_writes() 2020-01-15 10:54:32 -05:00
nfs42.h
nfs42proc.c NFS: Fix memory leaks 2020-02-04 11:01:54 -05:00
nfs42xdr.c
nfsroot.c nfsroot: set tcp as the default transport protocol 2020-03-25 08:45:47 -04:00
nfstrace.c
nfstrace.h NFS: Clean up process of marking inode stale. 2020-04-06 13:56:33 -04:00
pagelist.c NFS: Refactor nfs_lock_and_join_requests() 2020-04-01 13:37:56 -04:00
pnfs.c NFS: Fix an ABBA spinlock issue in pnfs_update_layout() 2020-04-13 15:55:21 -04:00
pnfs.h pNFS/flexfiles: Check the layout segment range before doing I/O 2020-03-27 16:34:35 -04:00
pnfs_dev.c
pnfs_nfs.c pNFS: Fix RCU lock leakage 2020-04-11 11:42:35 -04:00
proc.c NFS: Add softreval behaviour to nfs_lookup_revalidate() 2020-01-24 16:51:13 -05:00
read.c NFS: Clean up process of marking inode stale. 2020-04-06 13:56:33 -04:00
super.c NFS client updates for Linux 5.7 2020-04-07 13:51:39 -07:00
symlink.c
sysctl.c
sysfs.c fs: nfs: sysfs: Remove NULL check before kfree 2019-11-18 10:38:04 +01:00
sysfs.h
unlink.c NFS: Avoid referencing the cred twice in async rename/unlink 2020-03-16 08:34:29 -04:00
write.c NFS: Try to join page groups before an O_DIRECT retransmission 2020-04-01 13:37:57 -04:00