linux/fs/nfs
Trond Myklebust 0c116cadd9 NFSv4.1: nfs41_clear_delegation_stateid shouldn't trust NFS_DELEGATED_STATE
This patch removes the assumption made previously, that we only need to
check the delegation stateid when it matches the stateid on a cached
open.

If we believe that we hold a delegation for this file, then we must assume
that its stateid may have been revoked or expired too. If we don't test it
then our state recovery process may end up caching open/lock state in a
situation where it should not.
We therefore rename the function nfs41_clear_delegation_stateid as
nfs41_check_delegation_stateid, and change it to always run through the
delegation stateid test and recovery process as outlined in RFC5661.

http://lkml.kernel.org/r/CAN-5tyHwG=Cn2Q9KsHWadewjpTTy_K26ee+UnSvHvG4192p-Xw@mail.gmail.com
Cc: stable@vger.kernel.org
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
2014-11-12 17:01:33 -05:00
..
blocklayout nfs: Remove bogus assignment 2014-11-12 14:22:53 -05:00
filelayout NFSv4.1/pnfs: replace broken pnfs_put_lseg_async 2014-10-08 16:45:43 -04:00
objlayout Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osd 2014-10-21 12:53:45 -07:00
cache_lib.c
cache_lib.h
callback_proc.c pnfs: enable CB_NOTIFY_DEVICEID support 2014-09-12 13:33:50 -04:00
callback_xdr.c Merge branch 'labeled-nfs' into linux-next 2013-06-28 16:29:51 -04:00
callback.c nfs: do not start the callback thread until we set rqstp->rq_task 2014-09-02 17:53:30 -04:00
callback.h NFS: Add in v4.2 callback operation 2013-06-08 16:20:18 -04:00
client.c Merge branch 'bugfixes' into linux-next 2014-09-30 17:21:41 -04:00
delegation.c nfs4: add nfs4_check_delegation 2014-07-12 18:22:58 -04:00
delegation.h nfs4: add nfs4_check_delegation 2014-07-12 18:22:58 -04:00
dir.c NFSv4: Ensure nfs_atomic_open set the dentry verifier on ENOENT 2014-11-04 19:53:49 -06:00
direct.c nfs: fix pnfs direct write memory leak 2014-11-12 14:22:51 -05:00
dns_resolve.c NFS: Enabling v4.2 should not recompile nfsd and lockd 2013-11-19 16:20:40 -05:00
dns_resolve.h
file.c Merge branch 'for-3.18/core' of git://git.kernel.dk/linux-block 2014-10-18 11:53:51 -07:00
fscache-index.c NFS: Fabricate fscache server index key correctly 2014-09-25 21:25:18 -04:00
fscache.c NFS: Use i_writecount to control whether to get an fscache cookie in nfs_open() 2013-09-27 18:40:25 +01:00
fscache.h NFS: Use i_writecount to control whether to get an fscache cookie in nfs_open() 2013-09-27 18:40:25 +01:00
getroot.c dcache: d_obtain_alias callers don't all want DISCONNECTED 2014-08-07 14:40:10 -04:00
idmap.c KEYS: Remove key_type::match in favour of overriding default by match_preparse 2014-09-16 17:36:06 +01:00
inode.c nfs: Fix use of uninitialized variable in nfs_getattr() 2014-11-12 14:22:53 -05:00
internal.h File locking related changes for v3.18 (pile #1) 2014-10-11 13:21:34 -04:00
iostat.h
Kconfig nfs: fix pnfs Kconfig defaults 2013-11-15 13:41:43 -05:00
Makefile NFS: Implement SEEK 2014-09-30 16:24:56 -04:00
mount_clnt.c nfs: have nfs_mount fake up a auth_flavs list when the server didn't provide it 2013-06-28 15:51:51 -04:00
namespace.c nfs: use %p[dD] instead of open-coded (and often racy) equivalents 2013-10-24 23:34:50 -04:00
netns.h pnfs/blocklayout: serialize GETDEVICEINFO calls 2014-11-12 14:22:52 -05:00
nfs2super.c
nfs2xdr.c NFS: Create a common results structure for reads and writes 2014-05-28 18:12:43 -04:00
nfs3_fs.h NFS: Move NFS v3 acl functions to nfs3_fs.h 2014-09-12 13:50:26 -04:00
nfs3acl.c NFSv3: Fix missing includes of nfs3_fs.h 2014-09-25 16:28:53 -04:00
nfs3client.c NFSv3: Fix missing includes of nfs3_fs.h 2014-09-25 16:28:53 -04:00
nfs3proc.c NFS: Move v3 declarations out of internal.h 2014-09-12 13:49:40 -04:00
nfs3super.c NFS: Move NFS v3 acl functions to nfs3_fs.h 2014-09-12 13:50:26 -04:00
nfs3xdr.c NFS: Create a common results structure for reads and writes 2014-05-28 18:12:43 -04:00
nfs4_fs.h Merge branch 'client-4.2' into linux-next 2014-09-30 17:22:02 -04:00
nfs4client.c NFSv4: nfs4_state_manager() vs. nfs_server_remove_lists() 2014-09-18 13:04:21 -04:00
nfs4file.c NFS client updates for Linux 3.18 2014-10-18 12:52:08 -07:00
nfs4getroot.c NFSv4: Fix security auto-negotiation 2013-09-07 16:18:30 -04:00
nfs4namespace.c NFSv4: test SECINFO RPC_AUTH_GSS pseudoflavors for support 2014-06-24 18:46:58 -04:00
nfs4proc.c NFSv4.1: nfs41_clear_delegation_stateid shouldn't trust NFS_DELEGATED_STATE 2014-11-12 17:01:33 -05:00
nfs4renewd.c NFSv4.1: Fix an NFSv4.1 state renewal regression 2014-09-30 17:18:42 -04:00
nfs4session.c NFSv4.1: nfs4_destroy_session must call rpc_destroy_waitqueue 2014-02-01 15:13:39 -05:00
nfs4session.h NFSv4.1: nfs4_destroy_session must call rpc_destroy_waitqueue 2014-02-01 15:13:39 -05:00
nfs4state.c Merge branch 'bugfixes' into linux-next 2014-09-30 17:21:41 -04:00
nfs4super.c mm + fs: store shadow entries in page cache 2014-04-03 16:21:01 -07:00
nfs4sysctl.c nfs: convert use of typedef ctl_table to struct ctl_table 2014-06-06 16:08:16 -07:00
nfs4trace.c NFSv4.1: Add tracepoints for debugging slot table operations 2013-08-22 08:58:27 -04:00
nfs4trace.h nfs: merge nfs_pgio_data into _header 2014-06-24 18:47:00 -04:00
nfs4xdr.c Merge branch 'client-4.2' into linux-next 2014-09-30 17:22:02 -04:00
nfs42.h NFS: Implement SEEK 2014-09-30 16:24:56 -04:00
nfs42proc.c NFS: Implement SEEK 2014-09-30 16:24:56 -04:00
nfs42xdr.c NFS: Implement SEEK 2014-09-30 16:24:56 -04:00
nfs.h
nfsroot.c
nfstrace.c NFS: Add event tracing for generic NFS lookups 2013-08-22 08:58:18 -04:00
nfstrace.h NFS: fix the handling of NFS_INO_INVALID_DATA flag in nfs_revalidate_mapping 2014-01-27 15:35:56 -05:00
pagelist.c NFS: Fix a bogus warning in nfs_generic_pgio 2014-10-13 11:04:02 -04:00
pnfs_dev.c pnfs: remove GETDEVICELIST implementation 2014-09-12 13:20:54 -04:00
pnfs.c NFSv4.1/pnfs: replace broken pnfs_put_lseg_async 2014-10-08 16:45:43 -04:00
pnfs.h NFSv4.1/pnfs: replace broken pnfs_put_lseg_async 2014-10-08 16:45:43 -04:00
proc.c nfs: merge nfs_pgio_data into _header 2014-06-24 18:47:00 -04:00
read.c nfs: get rid of duplicate dprintk 2014-06-25 19:01:27 -04:00
super.c NFS: Remove v3 not compiled check from validate_mount_data() 2014-09-12 13:50:20 -04:00
symlink.c
sysctl.c nfs: convert use of typedef ctl_table to struct ctl_table 2014-06-06 16:08:16 -07:00
unlink.c nfs: emit a fsnotify_nameremove call in sillyrename codepath 2014-03-17 15:14:17 -04:00
write.c nfs: remove spurious WARN_ON_ONCE in write path 2014-11-12 14:22:52 -05:00