kernel-fxtec-pro1x/fs/nfs
Chuck Lever a6a2cf4d91 NFS: Zero-stateid SETATTR should first return delegation
[ Upstream commit 644c9f40cf71969f29add32f32349e71d4995c0b ]

If a write delegation isn't available, the Linux NFS client uses
a zero-stateid when performing a SETATTR.

NFSv4.0 provides no mechanism for an NFS server to match such a
request to a particular client. It recalls all delegations for that
file, even delegations held by the client issuing the request. If
that client happens to hold a read delegation, the server will
recall it immediately, resulting in an NFS4ERR_DELAY/CB_RECALL/
DELEGRETURN sequence.

Optimize out this pipeline bubble by having the client return any
delegations it may hold on a file before it issues a
SETATTR(zero-stateid) on that file.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-09-23 12:10:58 +02:00
..
blocklayout
filelayout
flexfilelayout pNFS/flexfiles: Fix list corruption if the mirror count changes 2020-06-30 23:17:18 -04:00
cache_lib.c
cache_lib.h
callback.c
callback.h
callback_proc.c NFSv4/pnfs: Return valid stateids in nfs_layout_find_inode_by_stateid() 2020-04-23 10:30:18 +02:00
callback_xdr.c
client.c nfs: add minor version to nfs_server_key for fscache 2020-04-02 15:28:14 +02:00
delegation.c NFS: Fix a soft lockup in the delegation recovery code 2020-01-27 14:50:27 +01:00
delegation.h NFS: Fix a soft lockup in the delegation recovery code 2020-01-27 14:50:27 +01:00
dir.c NFS: Directory page cache pages need to be locked when read 2020-02-11 04:34:06 -08:00
direct.c SUNRPC reverting d03727b248d0 ("NFSv4 fix CLOSE not waiting for direct IO compeletion") 2020-07-29 10:16:46 +02:00
dns_resolve.c
dns_resolve.h
export.c
file.c SUNRPC reverting d03727b248d0 ("NFSv4 fix CLOSE not waiting for direct IO compeletion") 2020-07-29 10:16:46 +02:00
fscache-index.c nfs: fscache: use timespec64 in inode auxdata 2020-05-20 08:18:43 +02:00
fscache.c NFSv4: Fix fscache cookie aux_data to ensure change_attr is included 2020-05-20 08:18:43 +02:00
fscache.h nfs: fscache: use timespec64 in inode auxdata 2020-05-20 08:18:43 +02:00
getroot.c
inode.c
internal.h
io.c
iostat.h
Kconfig nfs: NFS_SWAP should depend on SWAP 2020-02-14 16:33:23 -05:00
Makefile
mount_clnt.c
namespace.c
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-06 08:13:32 +02:00
nfs3client.c
nfs3proc.c
nfs3super.c
nfs3xdr.c NFS/pnfs: Fix pnfs_generic_prepare_to_resend_writes() 2020-02-14 16:33:24 -05:00
nfs4_fs.h
nfs4client.c nfs: add minor version to nfs_server_key for fscache 2020-04-02 15:28:14 +02:00
nfs4file.c
nfs4getroot.c
nfs4idmap.c
nfs4idmap.h
nfs4namespace.c
nfs4proc.c NFS: Zero-stateid SETATTR should first return delegation 2020-09-23 12:10:58 +02:00
nfs4renewd.c
nfs4session.c
nfs4session.h
nfs4state.c
nfs4super.c
nfs4sysctl.c
nfs4trace.c
nfs4trace.h
nfs4xdr.c nfs: Fix getxattr kernel panic and memory overflow 2020-08-21 11:05:38 +02:00
nfs42.h
nfs42proc.c NFS: Fix memory leaks 2020-02-24 08:34:53 +01:00
nfs42xdr.c NFS: Add missing encode / decode sequence_maxsz to v4.2 operations 2020-01-27 14:50:29 +01:00
nfsroot.c
nfstrace.c
nfstrace.h
pagelist.c NFS: Fix memory leaks in nfs_pageio_stop_mirroring() 2020-04-23 10:30:21 +02:00
pnfs.c NFS: Don't return layout segments that are in use 2020-08-19 08:15:06 +02:00
pnfs.h NFS/pnfs: Bulk destroy of layouts needs to be safe w.r.t. umount 2020-01-27 14:50:27 +01:00
pnfs_dev.c
pnfs_nfs.c NFS/pnfs: Fix pnfs_generic_prepare_to_resend_writes() 2020-02-14 16:33:24 -05:00
proc.c
read.c
super.c fs/nfs: Fix nfs_parse_devname to not modify it's argument 2020-01-27 14:50:26 +01:00
symlink.c
sysctl.c
unlink.c
write.c NFS: Fix a page leak in nfs_destroy_unlinked_subrequests() 2020-04-17 10:48:51 +02:00