diff -u --recursive --new-file linux-2.2.19/fs/nfs/inode.c linux-2.2.19-atime/fs/nfs/inode.c --- linux-2.2.19/fs/nfs/inode.c Sun Mar 25 18:37:38 2001 +++ linux-2.2.19-atime/fs/nfs/inode.c Mon May 21 23:02:18 2001 @@ -115,6 +115,8 @@ inode->i_mode = 0; inode->i_rdev = 0; inode->i_op = NULL; + /* We can't support UPDATE_ATIME(), since the server will reset it */ + inode->i_flags |= MS_NOATIME; NFS_FILEID(inode) = 0; NFS_FSID(inode) = 0; INIT_LIST_HEAD(&inode->u.nfs_i.read); @@ -796,21 +798,6 @@ return error; } -int -nfs_update_atime(struct dentry *dentry) -{ - struct iattr attr; - struct inode *inode = dentry->d_inode; - - nfs_revalidate(dentry); - if (!inode || time_before(inode->i_atime,nfs_time_to_secs(NFS_CACHE_ATIME(inode)))) - return 0; - - attr.ia_valid = ATTR_ATIME|ATTR_ATIME_SET; - attr.ia_atime = inode->i_atime; - return nfs_notify_change(dentry, &attr); -} - /* * Wait for the inode to get unlocked. * (Used for NFS_INO_LOCKED and NFS_INO_REVALIDATING). @@ -1025,12 +1012,9 @@ NFS_CACHE_CTIME(inode) = fattr->ctime; inode->i_ctime = nfs_time_to_secs(fattr->ctime); - /* If we've been messing around with atime, don't - * update it. Save the server value in NFS_CACHE_ATIME. - */ + NFS_CACHE_ATIME(inode) = fattr->atime; - if (time_before(inode->i_atime, nfs_time_to_secs(fattr->atime))) - inode->i_atime = nfs_time_to_secs(fattr->atime); + inode->i_atime = nfs_time_to_secs(fattr->atime); NFS_CACHE_MTIME(inode) = new_mtime; inode->i_mtime = nfs_time_to_secs(new_mtime); diff -u --recursive --new-file linux-2.2.19/include/linux/nfs_fs.h linux-2.2.19-atime/include/linux/nfs_fs.h --- linux-2.2.19/include/linux/nfs_fs.h Mon Mar 26 17:11:28 2001 +++ linux-2.2.19-atime/include/linux/nfs_fs.h Mon May 21 23:03:03 2001 @@ -141,8 +141,6 @@ extern int nfs_refresh_inode(struct inode *, struct nfs_fattr *); extern int nfs_wait_on_inode(struct inode *, int flag); extern void nfs_unlock_inode(struct inode *); -extern int nfs_update_atime(struct dentry *); - /* * linux/fs/nfs/file.c