diff -Naurp 04-dtsize/fs/nfs/nfs4proc.c 05-attr_cache/fs/nfs/nfs4proc.c --- 04-dtsize/fs/nfs/nfs4proc.c Tue Jun 17 00:20:19 2003 +++ 05-attr_cache/fs/nfs/nfs4proc.c Thu Jun 19 18:26:51 2003 @@ -1513,16 +1513,23 @@ nfs4_proc_read_setup(struct nfs_read_dat static void nfs4_write_refresh_inode(struct inode *inode, struct nfs_fattr *fattr) { + /* let CTO decide when to invalidate our cache */ +#if 0 /* Check cache consistency */ if (fattr->pre_change_attr != NFS_CHANGE_ATTR(inode)) nfs_zap_caches(inode); - NFS_CHANGE_ATTR(inode) = fattr->change_attr; +#endif + NFS_CACHE_ISIZE(inode) = fattr->size; if (fattr->bitmap[1] & FATTR4_WORD1_SPACE_USED) inode->i_blocks = (fattr->du.nfs3.used + 511) >> 9; - if (fattr->bitmap[1] & FATTR4_WORD1_TIME_METADATA) + if (fattr->bitmap[1] & FATTR4_WORD1_TIME_METADATA) { inode->i_ctime = fattr->ctime; - if (fattr->bitmap[1] & FATTR4_WORD1_TIME_MODIFY) + NFS_CACHE_CTIME(inode) = fattr->ctime; + } + if (fattr->bitmap[1] & FATTR4_WORD1_TIME_MODIFY) { inode->i_mtime = fattr->mtime; + NFS_CACHE_MTIME(inode) = fattr->mtime; + } } static void