alistair23-linux/fs/nfs
Trond Myklebust f8806c843f NFS: Fix writeback performance issue on cache invalidation
If a cache invalidation is triggered, and we happen to have a lot of
writebacks cached at the time, then the call to invalidate_inode_pages2()
will end up calling ->launder_page() on each and every dirty page in order
to sync its contents to disk, thus defeating write coalescing.
The following patch ensures that we try to sync the inode to disk before
calling invalidate_inode_pages2() so that we do the writeback as efficiently
as possible.

Reported-by: William Dauchy <william@gandi.net>
Reported-by: Pascal Bouchareine <pascal@gandi.net>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Tested-by: William Dauchy <william@gandi.net>
Reviewed-by: Jeff Layton <jlayton@redhat.com>
2013-08-07 17:07:40 -04:00
..
blocklayout NFSv4.1 use pnfs_device maxcount for the blocklayout gdia_maxcount 2013-06-28 15:34:44 -04:00
objlayout NFSv4.1 use pnfs_device maxcount for the objectlayout gdia_maxcount 2013-06-28 15:34:45 -04:00
cache_lib.c
cache_lib.h
callback.c NFS client updates for Linux 3.11 2013-07-09 12:09:43 -07:00
callback.h NFS: Add in v4.2 callback operation 2013-06-08 16:20:18 -04:00
callback_proc.c Merge branch 'labeled-nfs' into linux-next 2013-06-28 16:29:51 -04:00
callback_xdr.c Merge branch 'labeled-nfs' into linux-next 2013-06-28 16:29:51 -04:00
client.c Merge branch 'labeled-nfs' into linux-next 2013-06-28 16:29:51 -04:00
delegation.c locks: protect most of the file_lock handling with i_lock 2013-06-29 12:57:42 +04:00
delegation.h
dir.c NFS: Make nfs_readdir revalidate less often 2013-07-09 17:17:07 -04:00
direct.c
dns_resolve.c NFSv4: Move the DNS resolver into the NFSv4 module 2013-06-18 13:47:18 -04:00
dns_resolve.h
file.c fs: nfs: inform the VM about pages being committed or unstable 2013-07-03 16:07:29 -07:00
fscache-index.c
fscache.c
fscache.h
getroot.c NFS:Add labels to client function prototypes 2013-06-08 16:20:15 -04:00
idmap.c NFS: Improve legacy idmapping fallback 2013-06-28 15:22:07 -04:00
inode.c NFS: Fix writeback performance issue on cache invalidation 2013-08-07 17:07:40 -04:00
internal.h Merge branch 'labeled-nfs' into linux-next 2013-06-28 16:29:51 -04:00
iostat.h
Kconfig Kconfig: Add Kconfig entry for Labeled NFS V4 client 2013-06-08 16:20:17 -04:00
Makefile NFSv4: Move the DNS resolver into the NFSv4 module 2013-06-18 13:47:18 -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:Add labels to client function prototypes 2013-06-08 16:20:15 -04:00
netns.h
nfs.h
nfs2super.c
nfs2xdr.c
nfs3acl.c
nfs3client.c
nfs3proc.c NFS client updates for Linux 3.11 2013-07-09 12:09:43 -07:00
nfs3super.c
nfs3xdr.c
nfs4_fs.h Merge branch 'labeled-nfs' into linux-next 2013-06-28 16:29:51 -04:00
nfs4client.c Merge branch 'labeled-nfs' into linux-next 2013-06-28 16:29:51 -04:00
nfs4file.c NFSv4: Move dentry instantiation into the NFSv4-specific atomic open code 2013-06-06 16:24:43 -04:00
nfs4filelayout.c
nfs4filelayout.h
nfs4filelayoutdev.c NFSv4.1 Fix gdia_maxcount calculation to fit in ca_maxresponsesize 2013-06-28 15:34:43 -04:00
nfs4getroot.c
nfs4namespace.c
nfs4proc.c NFS client updates for Linux 3.11 2013-07-09 12:09:43 -07:00
nfs4renewd.c
nfs4session.c NFSv4.1 Refactor nfs4_init_session and nfs4_init_channel_attrs 2013-06-28 15:55:19 -04:00
nfs4session.h NFSv4.1 Refactor nfs4_init_session and nfs4_init_channel_attrs 2013-06-28 15:55:19 -04:00
nfs4state.c NFS client updates for Linux 3.11 2013-07-09 12:09:43 -07:00
nfs4super.c NFSv4: Move the DNS resolver into the NFSv4 module 2013-06-18 13:47:18 -04:00
nfs4sysctl.c
nfs4xdr.c NFSv4: Fix brainfart in attribute length calculation 2013-07-23 14:24:59 -07:00
nfsroot.c
pagelist.c
pnfs.c NFSv4.1: Clean up layout segment comparison helper names 2013-06-18 13:47:18 -04:00
pnfs.h NFSv4.1 Fix gdia_maxcount calculation to fit in ca_maxresponsesize 2013-06-28 15:34:43 -04:00
pnfs_dev.c
proc.c NFS:Add labels to client function prototypes 2013-06-08 16:20:15 -04:00
read.c
super.c Merge branch 'labeled-nfs' into linux-next 2013-06-28 16:29:51 -04:00
symlink.c
sysctl.c
unlink.c helper for reading ->d_count 2013-07-05 18:59:33 +04:00
write.c NFS: Allow nfs_updatepage to extend a write under additional circumstances 2013-07-09 19:32:50 -04:00