• Trond Myklebust's avatar
    NFS: Fix attribute updates · 03254e65
    Trond Myklebust authored
    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: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
    03254e65
inode.c 38.3 KB