tmp_suning_uos_patched/fs/nfs
Boaz Harrosh ed7e542301 pnfs: Proper delay for NFS4ERR_RECALLCONFLICT in layout_get_done
An NFS4ERR_RECALLCONFLICT is returned by server from a GET_LAYOUT
only when a Server Sent a RECALL do to that GET_LAYOUT, or
the RECALL and GET_LAYOUT crossed on the wire.
In any way this means we want to wait at most until in-flight IO
is finished and the RECALL can be satisfied.

So a proper wait here is more like 1/10 of a second, not 15 seconds
like we have now. In case of a server bug we delay exponentially
longer on each retry.

Current code totally craps out performance of very large files on
most pnfs-objects layouts, because of how the map changes when the
file has grown into the next raid group.

[Stable: This will patch back to 3.9. If there are earlier still
 maintained trees, please tell me I'll send a patch]

CC: Stable Tree <stable@vger.kernel.org>
Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
2014-01-22 18:10:49 -07:00
..
blocklayout nfs: fix do_div() warning by instead using sector_div() 2013-12-04 12:57:37 -05:00
objlayout
cache_lib.c
cache_lib.h
callback_proc.c
callback_xdr.c
callback.c nfs: Use PTR_ERR_OR_ZERO in 'nfs41_callback_up' function 2013-10-28 18:16:55 -04:00
callback.h
client.c NFS: cache parsed auth_info in nfs_server 2013-10-28 15:37:43 -04:00
delegation.c
delegation.h
dir.c NFS: dprintk() should not print negative fileids and inode numbers 2014-01-05 15:51:23 -05:00
direct.c nfs: page cache invalidation for dio 2014-01-13 17:29:50 -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 NFS: dprintk() should not print negative fileids and inode numbers 2014-01-05 15:51:23 -05:00
fscache-index.c
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
idmap.c
inode.c NFSv4.1: Don't trust attributes if a pNFS LAYOUTCOMMIT is outstanding 2014-01-13 12:08:11 -05:00
internal.h NFS: Enabling v4.2 should not recompile nfsd and lockd 2013-11-19 16:20:40 -05:00
iostat.h
Kconfig nfs: fix pnfs Kconfig defaults 2013-11-15 13:41:43 -05:00
Makefile
mount_clnt.c
namespace.c nfs: use %p[dD] instead of open-coded (and often racy) equivalents 2013-10-24 23:34:50 -04:00
netns.h
nfs2super.c
nfs2xdr.c
nfs3acl.c NFS: dprintk() should not print negative fileids and inode numbers 2014-01-05 15:51:23 -05:00
nfs3client.c
nfs3proc.c nfs: use %p[dD] instead of open-coded (and often racy) equivalents 2013-10-24 23:34:50 -04:00
nfs3super.c
nfs3xdr.c
nfs4_fs.h NFS: Enabling v4.2 should not recompile nfsd and lockd 2013-11-19 16:20:40 -05:00
nfs4client.c nfs4: fix discover_server_trunking use after free 2014-01-20 16:08:06 -07:00
nfs4file.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-11-13 15:34:18 +09:00
nfs4filelayout.c pnfs: fix BUG in filelayout_recover_commit_reqs 2014-01-21 14:12:18 -07:00
nfs4filelayout.h
nfs4filelayoutdev.c nfs: fix dead code of ipv6_addr_scope 2014-01-05 15:38:21 -05:00
nfs4getroot.c
nfs4namespace.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-11-13 15:34:18 +09:00
nfs4proc.c pnfs: Proper delay for NFS4ERR_RECALLCONFLICT in layout_get_done 2014-01-22 18:10:49 -07:00
nfs4renewd.c
nfs4session.c
nfs4session.h
nfs4state.c point to the right include file in a comment (left over from a9004abc3) 2014-01-05 15:51:35 -05:00
nfs4super.c NFSv4.1: Fix a race in nfs4_write_inode 2014-01-13 13:34:36 -05:00
nfs4sysctl.c
nfs4trace.c
nfs4trace.h
nfs4xdr.c NFSv4: OPEN must handle the NFS4ERR_IO return code correctly 2013-12-06 13:06:30 -05:00
nfs.h
nfsroot.c
nfstrace.c
nfstrace.h
pagelist.c
pnfs_dev.c
pnfs.c NFSv4.1: Fix a race in nfs4_write_inode 2014-01-13 13:34:36 -05:00
pnfs.h NFSv4.1: Don't trust attributes if a pNFS LAYOUTCOMMIT is outstanding 2014-01-13 12:08:11 -05:00
proc.c nfs: use %p[dD] instead of open-coded (and often racy) equivalents 2013-10-24 23:34:50 -04:00
read.c NFS: dprintk() should not print negative fileids and inode numbers 2014-01-05 15:51:23 -05:00
super.c NFS: correctly report misuse of "migration" mount option. 2013-11-15 13:41:43 -05:00
symlink.c
sysctl.c
unlink.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-11-13 15:34:18 +09:00
write.c nfs: always make sure page is up-to-date before extending a write to cover the entire page 2014-01-17 15:37:15 -05:00