linux_dsm_epyc7002/fs/nfs
Trond Myklebust 334a8f3711 pNFS: Don't forget the layout stateid if there are outstanding LAYOUTGETs
If there are outstanding LAYOUTGET rpc calls, then we want to ensure that
we keep the layout stateid around so we that don't inadvertently pick up
an old/misordered sequence id.
The race is as follows:

Client				Server
======				======
LAYOUTGET(seqid)
LAYOUTGET(seqid)
				return LAYOUTGET(seqid+1)
				return LAYOUTGET(seqid+2)
process LAYOUTGET(seqid+2)
	forget layout
process LAYOUTGET(seqid+1)

If it forgets the layout stateid before processing seqid+1, then
the client will not check the layout->plh_barrier, and so will set
the stateid with seqid+1.

Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
2016-09-04 12:59:00 -04:00
..
blocklayout pnfs/blocklayout: update last_write_offset atomically with extents 2016-08-23 11:41:38 -04:00
filelayout pNFS/files: filelayout_write_done_cb must call nfs_writeback_update_inode() 2016-07-21 09:46:42 -04:00
flexfilelayout pNFS/flexfiles: Fix an Oopsable condition when connection to the DS fails 2016-08-29 15:21:16 -04:00
objlayout mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros 2016-04-04 10:41:08 -07:00
cache_lib.c NFS: simplify and clean cache library 2013-02-15 10:43:36 -05:00
cache_lib.h NFS: simplify and clean cache library 2013-02-15 10:43:36 -05:00
callback_proc.c NFSv4.1: Remove obsolete and incorrrect assignment in nfs4_callback_sequence 2016-08-28 14:23:27 -04:00
callback_xdr.c NFS: Don't drop CB requests with invalid principals 2016-07-11 15:50:43 -04:00
callback.c NFSv4.x: Fix a refcount leak in nfs_callback_up_net 2016-08-30 09:26:57 -04:00
callback.h NFSv4.x: Allow multiple callbacks in flight 2016-01-25 09:36:21 -05:00
client.c NFS: Allow the mount option retrans=0 2016-08-16 11:00:06 -04:00
delegation.c NFSv4: Use the right stateid for delegations in setattr, read and write 2016-05-17 15:48:07 -04:00
delegation.h NFSv4: Use the right stateid for delegations in setattr, read and write 2016-05-17 15:48:07 -04:00
dir.c NFS client updates for Linux 4.8 2016-07-30 16:33:25 -07:00
direct.c NFS client updates for Linux 4.8 2016-07-30 16:33:25 -07: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 NFS: DNS resolver cache per network namespace context introduced 2012-01-31 18:20:26 -05:00
file.c NFS: Fix error reporting in nfs_file_write() 2016-09-03 12:10:36 -04:00
fscache-index.c NFS: Fabricate fscache server index key correctly 2014-09-25 21:25:18 -04:00
fscache.c nfs: define nfs_inc_fscache_stats and using it as possible 2014-11-24 20:08:47 -05: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 VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
inode.c pNFS: Actively set attributes as invalid if LAYOUTCOMMIT is outstanding 2016-07-28 14:49:08 -04:00
internal.h NFS: Allow the mount option retrans=0 2016-08-16 11:00:06 -04:00
io.c NFS: Do not serialise O_DIRECT reads and writes 2016-07-05 19:11:04 -04:00
iostat.h nfs: define nfs_inc_fscache_stats and using it as possible 2014-11-24 20:08:47 -05:00
Kconfig kernel: conditionally support non-root users, groups and capabilities 2015-04-15 16:35:22 -07:00
Makefile NFS: Do not serialise O_DIRECT reads and writes 2016-07-05 19:11:04 -04:00
mount_clnt.c NFS: Remove unneeded NFS_DEBUG checking before define NFSDBG_FACILITY 2015-10-21 15:49:23 -05:00
namespace.c VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
netns.h pnfs/blocklayout: serialize GETDEVICEINFO calls 2014-11-12 14:22:52 -05:00
nfs2super.c NFS: Convert v2 into a module 2012-07-30 19:06:41 -04:00
nfs2xdr.c nfs: save server READ/WRITE/COMMIT status 2015-02-03 11:06:40 -08:00
nfs3_fs.h nfsv3: introduce nfs3_set_ds_client 2015-02-03 11:06:34 -08:00
nfs3acl.c posix_acl: Inode acl caching fixes 2016-03-31 00:30:15 -04:00
nfs3client.c nfs4: flexfiles: respect noresvport when establishing connections to DSes 2016-07-19 16:23:25 -04:00
nfs3proc.c qstr: constify instances in nfs 2016-07-20 23:30:06 -04:00
nfs3super.c nfsv3: introduce nfs3_set_ds_client 2015-02-03 11:06:34 -08:00
nfs3xdr.c xprtrdma: Fix large NFS SYMLINK calls 2015-08-05 16:21:28 -04:00
nfs4_fs.h NFS client bugfixes for Linux 4.8 2016-08-12 12:32:24 -07:00
nfs4client.c NFS4: Avoid migration loops 2016-08-30 09:26:32 -04:00
nfs4file.c NFSv4: Revert "Truncating file opens should also sync O_DIRECT writes" 2016-07-14 12:42:40 -04:00
nfs4getroot.c nfs: Remove invalid NFS_ATTR_FATTR_V4_REFERRAL checking in nfs4_get_rootfh 2015-07-01 11:31:22 -04:00
nfs4idmap.c KEYS: Add a facility to restrict new links into a keyring 2016-04-11 22:37:37 +01:00
nfs4idmap.h NFS: Move nfs_idmap.h into fs/nfs/ 2015-04-23 15:16:14 -04:00
nfs4namespace.c qstr: constify instances in nfs 2016-07-20 23:30:06 -04:00
nfs4proc.c pNFS: Clear out all layout segments if the server unsets lrp->res.lrs_present 2016-09-03 12:10:38 -04:00
nfs4renewd.c NFSv4: Cap the transport reconnection timer at 1/2 lease period 2016-08-05 19:22:22 -04:00
nfs4session.c NFSv4.1: Delay callback processing when there are referring triples 2016-08-28 14:23:26 -04:00
nfs4session.h NFSv4.1: Defer bumping the slot sequence number until we free the slot 2016-08-28 14:23:26 -04:00
nfs4state.c NFSv4: Cleanup the setting of the nfs4 lease period 2016-08-05 19:13:08 -04:00
nfs4super.c NFS: Move nfs_idmap.h into fs/nfs/ 2015-04-23 15:16:14 -04:00
nfs4sysctl.c nfs: do not initialise statics to 0 2015-12-28 09:57:15 -05:00
nfs4trace.c pNFS: Modify pnfs_update_layout tracepoints to use layout stateid 2015-12-28 09:57:14 -05:00
nfs4trace.h tracing: Use __get_str() when manipulating strings 2016-07-15 15:52:20 -04:00
nfs4xdr.c pNFS: Files and flexfiles always need to commit before layoutcommit 2016-07-05 19:08:01 -04:00
nfs42.h NFS: Add COPY nfs operation 2016-05-17 15:47:55 -04:00
nfs42proc.c pNFS: Handle NFS4ERR_OLD_STATEID correctly in LAYOUTSTAT calls 2016-08-19 16:27:31 -04:00
nfs42xdr.c NFSv4.2: Fix warning "variable ‘stateids’ set but not used" 2016-07-24 17:36:06 -04:00
nfs.h NFS: Convert v4 into a module 2012-07-30 19:06:52 -04:00
nfsroot.c nfsroot: make nfsroot to accept the 1024 bytes long directory name 2015-10-21 15:49:19 -05:00
nfstrace.c NFSv4: Allow tracing of NFSv4 fsync calls 2015-03-27 12:39:34 -04:00
nfstrace.h NFS client updates for Linux 4.8 2016-07-30 16:33:25 -07:00
pagelist.c NFS: Add nfs_commit_file() 2016-05-17 15:47:55 -04:00
pnfs_dev.c NFSv4.1: Don't cache deviceids that have no notifications 2015-03-27 12:32:24 -04:00
pnfs_nfs.c Merge branch 'writeback' 2016-07-24 17:08:31 -04:00
pnfs.c pNFS: Don't forget the layout stateid if there are outstanding LAYOUTGETs 2016-09-04 12:59:00 -04:00
pnfs.h Merge branch 'pnfs' 2016-07-24 17:08:59 -04:00
proc.c qstr: constify instances in nfs 2016-07-20 23:30:06 -04:00
read.c NFS: Fix a double page unlock 2016-06-24 12:01:00 -04:00
super.c NFS: Allow the mount option retrans=0 2016-08-16 11:00:06 -04:00
symlink.c switch ->get_link() to delayed_call, kill ->put_link() 2015-12-30 13:01:03 -05:00
sysctl.c nfs: convert use of typedef ctl_table to struct ctl_table 2014-06-06 16:08:16 -07:00
unlink.c qstr: constify instances in nfs 2016-07-20 23:30:06 -04:00
write.c NFS client updates for Linux 4.8 2016-07-30 16:33:25 -07:00