linux/fs/nfs
Trond Myklebust a10ad17630 NFS: Fix the NFS attribute update
Currently nfs_refresh_inode() will only update the inode metadata if it
sees that the RPC call that returned the nfs_fattr was started
after the last update of the inode. This means that if we have parallel
RPC calls to the same inode (when sending WRITE calls, for instance), we
may often miss updates.

This patch attempts to recover those missed updates by also accepting
them if the ctime in the nfs_fattr is more recent than the inode's
cached ctime.
It also recovers the case where the file size has increased, but the
ctime has not been updated due to limited ctime resolution.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2008-10-07 17:34:17 -04:00
..
callback_proc.c nfs: replace remaining __FUNCTION__ occurrences 2008-05-16 09:43:29 -07:00
callback_xdr.c nfs: replace remaining __FUNCTION__ occurrences 2008-05-16 09:43:29 -07:00
callback.c nfs4: fix potential race with rapid nfs_callback_up/down cycle 2008-07-09 12:09:32 -04:00
callback.h NFS: Change cb_recallargs to pass "struct sockaddr *" instead of sockaddr_in 2008-01-30 02:05:55 -05:00
client.c NFS: Don't apply NFS_MOUNT_FLAGMASK to text-based mounts 2008-10-07 17:23:56 -04:00
delegation.c nfs: replace remaining __FUNCTION__ occurrences 2008-05-16 09:43:29 -07:00
delegation.h NFS: Add an asynchronous delegreturn operation for use in nfs_clear_inode 2008-01-30 02:06:12 -05:00
dir.c NFS: Add options for finer control of the lookup cache 2008-10-07 17:22:20 -04:00
direct.c NFS: Use NFSDBG_FILE for all fops 2008-07-09 12:09:04 -04:00
file.c NFS: Fix nfs_file_llseek() 2008-10-06 20:08:26 -04:00
getroot.c Convert ERR_PTR(PTR_ERR(p)) instances to ERR_CAST(p) 2008-02-07 08:42:26 -08:00
idmap.c nfs: fix sparse warnings 2008-02-20 16:15:44 -05:00
inode.c NFS: Fix the NFS attribute update 2008-10-07 17:34:17 -04:00
internal.h NFS: Clean up nfs_sb_active/nfs_sb_deactive 2008-10-06 20:08:26 -04:00
iostat.h NFS: Fix a warning in nfs4_async_handle_error 2008-07-09 12:09:18 -04:00
Makefile NFS: Always enable NFS direct I/O 2008-03-19 18:00:34 -04:00
mount_clnt.c NFS: Fix filehandle size comparisons in the mount code 2008-06-23 17:09:06 -04:00
namespace.c [PATCH] pass struct path * to do_add_mount() 2008-08-01 11:25:32 -04:00
nfs2xdr.c nfs: return negative error value from nfs{,4}_stat_to_errno 2008-04-19 16:54:47 -04:00
nfs3acl.c NFS: Ensure we zap only the access and acl caches when setting new acls 2008-07-09 12:09:19 -04:00
nfs3proc.c NFS: Remove the redundant file_open entry from struct nfs_rpc_ops 2008-07-09 12:09:16 -04:00
nfs3xdr.c nfs: return negative error value from nfs{,4}_stat_to_errno 2008-04-19 16:54:47 -04:00
nfs4_fs.h nfs: make nfs4_drop_state_owner() static 2008-05-16 09:43:31 -07:00
nfs4namespace.c nfs: replace remaining __FUNCTION__ occurrences 2008-05-16 09:43:29 -07:00
nfs4proc.c NFS: Remove BKL usage from open() 2008-07-15 18:10:53 -04:00
nfs4renewd.c nfs: replace remaining __FUNCTION__ occurrences 2008-05-16 09:43:29 -07:00
nfs4state.c NFSv4: Remove BKL from the nfsv4 state recovery 2008-07-15 18:10:57 -04:00
nfs4xdr.c nfs: replace remaining __FUNCTION__ occurrences 2008-05-16 09:43:29 -07:00
nfsroot.c Revert "UFS: add const to parser token table" 2008-08-04 16:50:38 -07:00
pagelist.c Merge branch 'task_killable' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc 2008-02-01 11:45:47 +11:00
proc.c NFS: Remove the redundant file_open entry from struct nfs_rpc_ops 2008-07-09 12:09:16 -04:00
read.c nfs: replace remaining __FUNCTION__ occurrences 2008-05-16 09:43:29 -07:00
super.c NFS: Add mount options for controlling the lookup cache 2008-10-07 17:23:57 -04:00
symlink.c nfs: remove unnecessary NFS_NEED_* defines 2008-04-23 16:13:37 -04:00
sysctl.c [PATCH] nfs: fix congestion control 2007-03-16 19:25:05 -07:00
unlink.c NFS: Clean up nfs_sb_active/nfs_sb_deactive 2008-10-06 20:08:26 -04:00
write.c NFS: Remove BKL requirement from attribute updates 2008-07-15 18:10:51 -04:00