NFS: Fix the NFS attribute update
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 23 Sep 2008 21:28:41 +0000 (17:28 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 7 Oct 2008 21:34:17 +0000 (17:34 -0400)
commita10ad17630024bf7aae8e7f18352f816ee483091
treea290be6e6660766ceac3d06f022d2bc5d15a1602
parent870a5be8b92151332da65021b7b21104e9c1de07
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>
fs/nfs/inode.c