linux/fs/nfsd
J. Bruce Fields 6ee65a7730 Revert "nfsd4: a client's own opens needn't prevent delegations"
This reverts commit 94415b06eb.

That commit claimed to allow a client to get a read delegation when it
was the only writer.  Actually it allowed a client to get a read
delegation when *any* client has a write open!

The main problem is that it's depending on nfs4_clnt_odstate structures
that are actually only maintained for pnfs exports.

This causes clients to miss writes performed by other clients, even when
there have been intervening closes and opens, violating close-to-open
cache consistency.

We can do this a different way, but first we should just revert this.

I've added pynfs 4.1 test DELEG19 to test for this, as I should have
done originally!

Cc: stable@vger.kernel.org
Reported-by: Timo Rothenpieler <timo@rothenpieler.org>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2021-03-09 10:37:34 -05:00
..
acl.h nfsd: eliminate an unnecessary acl size limit 2019-08-28 21:13:45 -04:00
auth.c nfsd: auth: Fix gid sorting when rootsquash enabled 2018-01-22 20:13:07 -08:00
auth.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
blocklayout.c block: remove unnecessary argument from blk_execute_rq 2021-01-24 21:52:39 -07:00
blocklayoutxdr.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
blocklayoutxdr.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cache.h nfsd4: make drc_slab global, not per-net 2020-06-01 17:44:45 -04:00
current_stateid.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
export.c idmapped-mounts-v5.12 2021-02-23 13:39:45 -08:00
export.h nfsd: report per-export stats 2021-01-25 09:36:28 -05:00
fault_inject.c nfsd: no need to check return value of debugfs_create functions 2019-07-03 16:57:17 +02:00
filecache.c nfsd: Don't keep looking up unhashed files in the nfsd file cache 2021-03-06 16:41:47 -05:00
filecache.h nfsd: convert file cache to use over/underflow safe refcount 2020-02-06 11:22:55 -05:00
flexfilelayout.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
flexfilelayoutxdr.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
flexfilelayoutxdr.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
idmap.h nfsd: Remove duplicate define of IDMAP_NAMESZ/IDMAP_TYPE_xx 2015-07-20 14:58:46 -04:00
Kconfig fs: nfsd: fix kconfig dependency warning for NFSD_V4 2021-03-06 16:41:48 -05:00
lockd.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Makefile nfsd: remove fault injection code 2020-09-25 18:01:26 -04:00
netns.h nfsd: protect concurrent access to nfsd stats counters 2021-01-25 09:36:27 -05:00
nfs2acl.c idmapped-mounts-v5.12 2021-02-23 13:39:45 -08:00
nfs3acl.c idmapped-mounts-v5.12 2021-02-23 13:39:45 -08:00
nfs3proc.c NFSD: Add helper to set up the pages where the dirlist is encoded 2021-01-25 09:36:24 -05:00
nfs3xdr.c nfsd: skip some unnecessary stats in the v4 case 2021-01-30 11:47:21 -05:00
nfs4acl.c acl: handle idmapped mounts 2021-01-24 14:27:17 +01:00
nfs4callback.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
nfs4idmap.c nfsd: Use seq_putc() in two functions 2020-07-13 17:28:46 -04:00
nfs4layouts.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
nfs4proc.c nfsd: cstate->session->se_client -> cstate->clp 2021-01-28 10:55:37 -05:00
nfs4recover.c namei: prepare for idmapped mounts 2021-01-24 14:27:18 +01:00
nfs4state.c Revert "nfsd4: a client's own opens needn't prevent delegations" 2021-03-09 10:37:34 -05:00
nfs4xdr.c NFSD: Restore NFSv4 decoding's SAVEMEM functionality 2020-12-18 12:28:58 -05:00
nfscache.c nfsd: protect concurrent access to nfsd stats counters 2021-01-25 09:36:27 -05:00
nfsctl.c Optimization: 2021-02-22 13:29:55 -08:00
nfsd.h nfsd: report per-export stats 2021-01-25 09:36:28 -05:00
nfsfh.c idmapped-mounts-v5.12 2021-02-23 13:39:45 -08:00
nfsfh.h nfs: use change attribute for NFS re-exports 2021-01-30 11:47:12 -05:00
nfsproc.c idmapped-mounts-v5.12 2021-02-23 13:39:45 -08:00
nfssvc.c NFSD: Remove argument length checking in nfsd_dispatch() 2021-01-25 09:36:26 -05:00
nfsxdr.c NFSD: Clean up after updating NFSv2 ACL decoders 2021-01-25 09:36:27 -05:00
pnfs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
state.h nfsd: simplify nfsd4_check_open_reclaim 2021-01-28 10:55:37 -05:00
stats.c nfsd: protect concurrent access to nfsd stats counters 2021-01-25 09:36:27 -05:00
stats.h nfsd: report per-export stats 2021-01-25 09:36:28 -05:00
trace.c NFSD: Add SPDX header for fs/nfsd/trace.c 2020-11-30 13:00:24 -05:00
trace.h NFSD: Add tracepoints in nfsd4_decode/encode_compound() 2020-11-30 14:46:35 -05:00
vfs.c idmapped-mounts-v5.12 2021-02-23 13:39:45 -08:00
vfs.h nfsd: define xattr functions to call into their vfs counterparts 2020-07-13 17:27:03 -04:00
xdr3.h NFSD: Clean up after updating NFSv3 ACL decoders 2021-01-25 09:36:27 -05:00
xdr4.h NFSD: Fix sparse warning in nfssvc.c 2020-12-18 12:28:23 -05:00
xdr4cb.h NFSD CB_OFFLOAD xdr 2018-09-25 20:34:54 -04:00
xdr.h NFSD: Clean up after updating NFSv2 ACL decoders 2021-01-25 09:36:27 -05:00