alistair23-linux/fs/nfs
Trond Myklebust f044636d97 NFS: Add attribute update barriers to nfs_setattr_update_inode()
Ensure that other operations which raced with our setattr RPC call
cannot revert the file attribute changes that were made on the server.
To do so, we artificially bump the attribute generation counter on
the inode so that all calls to nfs_fattr_init() that precede ours
will be dropped.

The motivation for the patch came from Chuck Lever's reports of readaheads
racing with truncate operations and causing the file size to be reverted.

Reported-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Tested-by: Chuck Lever <chuck.lever@oracle.com>
2015-03-01 23:23:05 -05:00
..
blocklayout pnfs: release lseg in pnfs_generic_pg_cleanup 2015-02-03 11:06:44 -08:00
filelayout pnfs: Refactor the *_layout_mark_request_commit to use pnfs_layout_mark_request_commit 2015-02-18 07:20:35 -08:00
flexfilelayout pnfs: Refactor the *_layout_mark_request_commit to use pnfs_layout_mark_request_commit 2015-02-18 07:20:35 -08:00
objlayout nfs: add nfs_pgio_current_mirror helper 2015-02-03 11:06:48 -08:00
cache_lib.c
cache_lib.h
callback.c nfs: don't call blocking operations while !TASK_RUNNING 2015-01-30 20:39:50 -05:00
callback.h
callback_proc.c NFSv4.1: Don't set up a backchannel if the server didn't agree to do so 2015-02-18 12:30:47 -08:00
callback_xdr.c NFSv4.1: Convert open-coded array allocation calls to kmalloc_array() 2015-02-11 19:02:52 -05:00
client.c
delegation.c Merge branch 'cleanups' 2015-02-18 07:28:37 -08:00
delegation.h NFSv4: Fix races between nfs_remove_bad_delegation() and delegation return 2014-11-12 17:19:04 -05:00
dir.c Merge branch 'iov_iter' into for-next 2014-12-08 20:39:29 -05:00
direct.c NFS: struct nfs_commit_info.lock must always point to inode->i_lock 2015-02-13 21:03:16 -05:00
dns_resolve.c
dns_resolve.h
file.c NFS: Ensure that buffered writes wait for O_DIRECT writes to complete 2015-03-01 23:22:40 -05:00
fscache-index.c
fscache.c nfs: define nfs_inc_fscache_stats and using it as possible 2014-11-24 20:08:47 -05:00
fscache.h
getroot.c switch d_materialise_unique() users to d_splice_alias() 2014-11-19 13:01:20 -05:00
idmap.c pnfs/flexfiles: Add the FlexFile Layout Driver 2015-02-03 11:06:52 -08:00
inode.c NFS: Add attribute update barriers to nfs_setattr_update_inode() 2015-03-01 23:23:05 -05:00
internal.h nfs: Provide and use helper functions for marking a page as unstable 2015-02-13 17:47:26 -05:00
iostat.h nfs: define nfs_inc_fscache_stats and using it as possible 2014-11-24 20:08:47 -05:00
Kconfig pnfs/flexfiles: Add the FlexFile Layout Driver 2015-02-03 11:06:52 -08:00
Makefile pnfs/flexfiles: Add the FlexFile Layout Driver 2015-02-03 11:06:52 -08:00
mount_clnt.c
namespace.c
netns.h
nfs.h
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
nfs3client.c nfs: set hostname when creating nfsv3 ds connection 2015-02-03 11:06:38 -08:00
nfs3proc.c NFS: Add attribute update barriers to nfs_setattr_update_inode() 2015-03-01 23:23:05 -05:00
nfs3super.c nfsv3: introduce nfs3_set_ds_client 2015-02-03 11:06:34 -08:00
nfs3xdr.c nfs: save server READ/WRITE/COMMIT status 2015-02-03 11:06:40 -08:00
nfs4_fs.h Merge branch 'flexfiles' 2015-02-03 16:01:27 -05:00
nfs4client.c Merge branch 'flexfiles' 2015-02-03 16:01:27 -05:00
nfs4file.c nfs: Add DEALLOCATE support 2014-11-25 16:38:32 -05:00
nfs4getroot.c
nfs4namespace.c
nfs4proc.c NFS: Add attribute update barriers to nfs_setattr_update_inode() 2015-03-01 23:23:05 -05:00
nfs4renewd.c
nfs4session.c NFSv4.1: Don't set up a backchannel if the server didn't agree to do so 2015-02-18 12:30:47 -08:00
nfs4session.h NFSv4.1: Clean up create_session 2015-02-18 12:28:50 -08:00
nfs4state.c NFS client updates for Linux 3.20 2015-02-11 17:14:54 -08:00
nfs4super.c Merge branch 'for-3.20/bdi' of git://git.kernel.dk/linux-block 2015-02-12 13:50:21 -08:00
nfs4sysctl.c
nfs4trace.c
nfs4trace.h
nfs4xdr.c NFSv4.1: Clean up bind_conn_to_session 2015-02-18 13:11:09 -08:00
nfs42.h nfs: Add DEALLOCATE support 2014-11-25 16:38:32 -05:00
nfs42proc.c nfs: Add DEALLOCATE support 2014-11-25 16:38:32 -05:00
nfs42xdr.c nfs: Add DEALLOCATE support 2014-11-25 16:38:32 -05:00
nfsroot.c NFS: a couple off by ones 2015-01-30 20:43:30 -05:00
nfstrace.c
nfstrace.h
pagelist.c NFS client updates for Linux 3.20 2015-02-11 17:14:54 -08:00
pnfs.c pnfs: delete an unintended goto 2015-02-10 08:41:23 -05:00
pnfs.h pnfs: Refactor the *_layout_mark_request_commit to use pnfs_layout_mark_request_commit 2015-02-18 07:20:35 -08:00
pnfs_dev.c
pnfs_nfs.c pnfs: Refactor the *_layout_mark_request_commit to use pnfs_layout_mark_request_commit 2015-02-18 07:20:35 -08:00
proc.c NFS: Add attribute update barriers to nfs_setattr_update_inode() 2015-03-01 23:23:05 -05:00
read.c nfs: add mirroring support to pgio layer 2015-02-03 11:06:45 -08:00
super.c Merge branch 'for-3.20/bdi' of git://git.kernel.dk/linux-block 2015-02-12 13:50:21 -08:00
symlink.c
sysctl.c
unlink.c
write.c nfs: Can call nfs_clear_page_commit() instead 2015-02-13 17:47:26 -05:00