linux_dsm_epyc7002/fs/nfs
Trond Myklebust a073dbff35 NFSv4.1: Fix a race in pNFS layoutcommit
We need to clear the NFS_LSEG_LAYOUTCOMMIT bits atomically with the
NFS_INO_LAYOUTCOMMIT bit, otherwise we may end up with situations
where the two are out of sync.
The first half of the problem is to ensure that pnfs_layoutcommit_inode
clears the NFS_LSEG_LAYOUTCOMMIT bit through pnfs_list_write_lseg.
We still need to keep the reference to those segments until the RPC call
is finished, so in order to make it clear _where_ those references come
from, we add a helper pnfs_list_write_lseg_done() that cleans up after
pnfs_list_write_lseg.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Acked-by: Benny Halevy <bhalevy@tonian.com>
Cc: stable@vger.kernel.org
2013-03-21 10:31:19 -04:00
..
blocklayout pnfs-block: removing DM device maybe cause oops when call dev_remove 2013-03-21 10:11:06 -04:00
objlayout umount oops when remove blocklayoutdriver first 2013-02-17 15:40:15 -05: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: Fix bulk recall and destroy of layouts 2013-02-14 13:22:50 -05:00
callback_xdr.c NFSv4.1: Move slot table and session struct definitions to nfs4session.h 2012-12-06 00:30:46 +01:00
callback.c NFSv4: Fix the return value for nfs_callback_start_svc 2012-10-16 13:14:42 -04:00
callback.h NFSv4.1: Clean up session draining 2012-12-06 00:30:44 +01:00
client.c nfs: idr_destroy() no longer needs idr_remove_all() 2013-02-27 19:10:14 -08:00
delegation.c NFSv4: Ensure delegation recall and byte range lock removal don't conflict 2013-02-11 15:33:13 -05:00
delegation.h NFSv4.1: Don't lose locks when a server reboots during delegation return 2013-02-11 15:33:12 -05:00
dir.c vfs: kill FS_REVAL_DOT by adding a d_weak_revalidate dentry op 2013-02-26 02:46:09 -05:00
direct.c nfs: fix page dirtying in NFS DIO read codepath 2012-12-12 12:56:19 -05:00
dns_resolve.c SUNRPC: remove "cache_request" argument in sunrpc_cache_pipe_upcall() function 2013-02-15 10:43:47 -05:00
dns_resolve.h NFS: DNS resolver cache per network namespace context introduced 2012-01-31 18:20:26 -05:00
file.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
fscache-index.c NFS: Use the inode->i_version to cache NFSv4 change attribute information 2011-10-18 09:14:34 -07:00
fscache.c NFS4: Open files for fscaching 2012-12-20 22:19:42 +00:00
fscache.h NFS: Provide stub nfs_fscache_wait_on_invalidate() for when CONFIG_NFS_FSCACHE=n 2012-12-21 08:06:48 -08:00
getroot.c nfs: remove kfree() redundant null checks 2013-02-17 15:27:21 -05:00
idmap.c NFSv4: Fix the string length returned by the idmapper 2013-03-20 16:45:16 -04:00
inode.c NFS client bugfixes for Linux 3.9 2013-03-02 16:46:07 -08:00
internal.h Revert "NFS: add nfs_sb_deactive_async to avoid deadlock" 2013-02-01 10:13:48 -05:00
iostat.h NFS: Squelch compiler warning in nfs_add_server_stats() 2010-05-14 15:09:31 -04:00
Kconfig NFSv4.1: Remove the dependency on CONFIG_EXPERIMENTAL 2012-10-03 10:54:50 -07:00
Makefile NFSv4.1: Cleanup move session slot management to fs/nfs/nfs4session.c 2012-12-06 00:30:45 +01:00
mount_clnt.c NFS: Remove the BUG_ON() in the mount code 2012-11-04 14:43:39 -05:00
namespace.c NFS: Don't silently fail setattr() requests on mountpoints 2013-01-30 17:41:04 -05:00
netns.h nfs: include NFSv4 header in netns.h 2012-10-02 08:17:02 -07:00
nfs2super.c NFS: Convert v2 into a module 2012-07-30 19:06:41 -04:00
nfs2xdr.c nfs: Convert nfs2xdr to use kuids and kgids 2013-02-13 06:15:30 -08:00
nfs3acl.c userns: Pass a userns parameter into posix_acl_to_xattr and posix_acl_from_xattr 2012-09-18 01:01:35 -07:00
nfs3client.c NFS: Only initialize the ACL client in the v3 case 2012-07-30 19:05:54 -04:00
nfs3proc.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
nfs3super.c NFS: Convert v3 into a module 2012-07-30 19:06:46 -04:00
nfs3xdr.c nfs: Convert nfs3xdr to use kuids and kgids 2013-02-13 06:15:31 -08:00
nfs4_fs.h NFSv4: Ensure delegation recall and byte range lock removal don't conflict 2013-02-11 15:33:13 -05:00
nfs4client.c Merge branch 'for-3.9' of git://linux-nfs.org/~bfields/linux 2013-02-28 18:02:55 -08:00
nfs4file.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
nfs4filelayout.c pnfs: fix resend_to_mds for directio 2013-02-24 10:07:36 -05:00
nfs4filelayout.h PNFS: set the default DS timeout to 60 seconds 2013-02-28 17:35:00 -08:00
nfs4filelayoutdev.c sunrpc: move address copy/cmp/convert routines and prototypes from clnt.h to addr.h 2013-02-05 09:41:14 -05:00
nfs4getroot.c NFSv4: fs/nfs/nfs4getroot.c needs to include "internal.h" 2012-10-16 12:37:59 -04:00
nfs4namespace.c sunrpc: move address copy/cmp/convert routines and prototypes from clnt.h to addr.h 2013-02-05 09:41:14 -05:00
nfs4proc.c NFSv4.1: Fix a race in pNFS layoutcommit 2013-03-21 10:31:19 -04:00
nfs4renewd.c workqueue: use mod_delayed_work() instead of cancel + queue 2012-08-13 16:27:37 -07:00
nfs4session.c NFSv4.1: Deal effectively with interrupted RPC calls. 2012-12-15 15:39:59 -05:00
nfs4session.h NFSv4.1: Deal effectively with interrupted RPC calls. 2012-12-15 15:39:59 -05:00
nfs4state.c NFSv4: Ensure delegation recall and byte range lock removal don't conflict 2013-02-11 15:33:13 -05:00
nfs4super.c vfs: kill FS_REVAL_DOT by adding a d_weak_revalidate dentry op 2013-02-26 02:46:09 -05:00
nfs4sysctl.c nfs: include nfs4_fh.h in nfs4sysctl.c 2012-10-02 08:17:03 -07:00
nfs4xdr.c nfs: Convert nfs4xdr to use kuids and kgids 2013-02-13 06:15:32 -08:00
nfs.h NFS: Convert v4 into a module 2012-07-30 19:06:52 -04:00
nfsroot.c SUNRPC/NFS: Add Kbuild dependencies for NFS_DEBUG/RPC_DEBUG 2012-03-20 13:08:26 -04:00
pagelist.c NFS: Clean up helper function nfs4_select_rw_stateid() 2012-09-28 16:03:04 -04:00
pnfs_dev.c hlist: drop the node parameter from iterators 2013-02-27 19:10:24 -08:00
pnfs.c NFSv4.1: Fix a race in pNFS layoutcommit 2013-03-21 10:31:19 -04:00
pnfs.h pnfs: fix resend_to_mds for directio 2013-02-24 10:07:36 -05:00
proc.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
read.c NFS: Ensure that we free the rpc_task after read and write cleanups are done 2013-01-04 12:59:10 -05:00
super.c Merge branch 'for-3.9' of git://linux-nfs.org/~bfields/linux 2013-02-28 18:02:55 -08:00
symlink.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
sysctl.c NFS: Initialize v4 sysctls from nfs_init_v4() 2012-07-17 13:33:18 -04:00
unlink.c NFS: Don't allow NFS silly-renamed files to be deleted, no signal 2013-02-22 14:55:34 -05:00
write.c NFS: Ensure that we free the rpc_task after read and write cleanups are done 2013-01-04 12:59:10 -05:00