NFS: Fix attribute updates
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Thu, 9 Oct 2008 17:27:55 +0000 (13:27 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Thu, 9 Oct 2008 17:34:07 +0000 (13:34 -0400)
commit03254e65a60d3113164672dbbadc023c4a56ecd1
tree789d1e66b9af896ad113009dd1a4e3ced0c4ca4d
parent19d771f3caccaf66ce2fb539319222139e5b4e88
NFS: Fix attribute updates

This fixes a regression seen when running the Connectathon testsuite
against an ext3 filesystem. The reason was that the inode was constantly
being marked as 'just updated' by the jiffy wraparound test.
This again meant that newer GETATTR calls were failing to pass the
nfs_inode_attrs_need_update() test unless the changes caused a ctime update
on the server, since they were perceived as having been started before the
latest inode update.

Given that nfs_inode_attrs_need_update() already checks for wraparound
of nfsi->last_updated, we can drop the buggy "protection" in
nfs_update_inode().

Also make a slight micro-optimisation of nfs_inode_attrs_need_update(): we
are more often going to see time_after(fattr->time_start, nfsi->last_updated)
be true, rather than seeing an update of ctime/size, so put that test
first to ensure that we optimise away the ctime/size tests.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/inode.c