linux/fs/nfs
Trond Myklebust 53e6fc86ab pNFS: Prevent unnecessary layoutreturns after delegreturn
If we cannot grab the inode or superblock, then we cannot pin the
layout header, and so we cannot send a layoutreturn as part of an
async delegreturn call. In this case, we currently end up sending
an extra layoutreturn after the delegreturn. Since the layout was
implicitly returned by the delegreturn, that just gets a BAD_STATEID.

The fix is to simply complete the return-on-close immediately.

Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
2016-12-01 17:21:48 -05:00
..
blocklayout pnfs/blocklayout: fix last_write_offset incorrectly set to page boundary 2016-10-13 16:42:53 -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: Get rid of unnecessary layout parameter in encode_layoutreturn callback 2016-12-01 17:21:44 -05:00
objlayout pNFS: Get rid of unnecessary layout parameter in encode_layoutreturn callback 2016-12-01 17:21:44 -05:00
cache_lib.c NFS: cache_lib: use complete() instead of complete_all() 2016-09-23 09:40:12 -04:00
cache_lib.h
callback_proc.c pNFS: Delay getting the layout header in CB_LAYOUTRECALL handlers 2016-12-01 17:21:42 -05:00
callback_xdr.c nfs: add handling for CB_NOTIFY_LOCK in client 2016-09-22 13:56:04 -04:00
callback.c NFSv4.x: hide array-bounds warning 2016-11-22 16:11:44 -05:00
callback.h nfs: add handling for CB_NOTIFY_LOCK in client 2016-09-22 13:56:04 -04:00
client.c NFS: Ignore connections that have cl_rpcclient uninitialized 2016-11-07 16:11:29 -05:00
delegation.c NFSv4: Optimise away forced revalidation when we know the attributes are OK 2016-12-01 17:21:37 -05:00
delegation.h NFSv4: nfs_inode_find_state_and_recover() should check all stateids 2016-09-27 14:34:35 -04:00
dir.c NFS client updates for Linux 4.9 2016-10-13 21:28:20 -07:00
direct.c NFS: direct: use complete() instead of complete_all() 2016-09-23 09:14:16 -04:00
dns_resolve.c
dns_resolve.h
file.c NFS client updates for Linux 4.9 2016-10-13 21:28:20 -07:00
fscache-index.c
fscache.c
fscache.h
getroot.c VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
inode.c NFSv4: Optimise away forced revalidation when we know the attributes are OK 2016-12-01 17:21:37 -05:00
internal.h NFS client updates for Linux 4.9 2016-10-13 21:28:20 -07:00
io.c NFS: Do not serialise O_DIRECT reads and writes 2016-07-05 19:11:04 -04:00
iostat.h
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 NFS: Trim extra slash in v4 nfs_path 2016-10-24 12:06:01 -04:00
netns.h fs: nfs: Make nfs boot time y2038 safe 2016-10-04 16:20:26 -04:00
nfs2super.c
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 vfs: Remove {get,set,remove}xattr inode operations 2016-10-07 21:48:36 -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 NFSv4: Fix CLOSE races with OPEN 2016-11-18 13:35:58 -05:00
nfs4client.c nfs: allow blocking locks to be awoken by lock callbacks 2016-09-22 15:54:27 -04:00
nfs4file.c switch generic_file_splice_read() to use of ->read_iter() 2016-10-05 18:23:56 -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: Prevent unnecessary layoutreturns after delegreturn 2016-12-01 17:21:48 -05: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: Fix regression in callback retry handling 2016-12-01 17:21:38 -05:00
nfs4session.h NFSv4.1: Don't deadlock the state manager on the SEQUENCE status flags 2016-09-27 14:31:27 -04:00
nfs4state.c NFSv4.1: Handle NFS4ERR_OLD_STATEID in nfs4_reclaim_open_state 2016-11-18 14:27:27 -05: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 NFSv4: Add encode/decode of the layoutreturn op in DELEGRETURN 2016-12-01 17:21:46 -05:00
nfs42.h NFS: Add COPY nfs operation 2016-05-17 15:47:55 -04:00
nfs42proc.c NFSv4.2: Fix a reference leak in nfs42_proc_layoutstats_generic 2016-10-04 16:30:54 -04:00
nfs42xdr.c NFSv4.2: Fix warning "variable ‘stateids’ set but not used" 2016-07-24 17:36:06 -04:00
nfs.h
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 mm: remove page_file_index 2016-10-07 18:46:28 -07: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 NFS pnfs data server multipath session trunking 2016-09-19 13:08:37 -04:00
pnfs.c pNFS: Enable layoutreturn operation for return-on-close 2016-12-01 17:21:47 -05:00
pnfs.h pNFS: Enable layoutreturn operation for return-on-close 2016-12-01 17:21:47 -05:00
proc.c fs: rename "rename2" i_op to "rename" 2016-09-27 11:03:58 +02:00
read.c mm: remove page_file_index 2016-10-07 18:46:28 -07:00
super.c NFSv4.x: Add kernel parameter to control the callback server 2016-09-19 13:08:36 -04:00
symlink.c switch ->get_link() to delayed_call, kill ->put_link() 2015-12-30 13:01:03 -05:00
sysctl.c
unlink.c qstr: constify instances in nfs 2016-07-20 23:30:06 -04:00
write.c mm: remove page_file_index 2016-10-07 18:46:28 -07:00