/* * Turn off the cache with regard to a per-inode cookie if opened for writing, * invalidating all the pages in the page cache relating to the associated * inode to clear the per-page caching. */ static void nfs_fscache_disable_inode_cookie(struct inode *inode) { clear_bit(NFS_INO_FSCACHE, &NFS_I(inode)->flags); if (NFS_I(inode)->fscache) { // dfprintk(FSCACHE, ; /* Need to uncache any pages attached to this inode that * fscache knows about before turning off the cache. */ fscache_uncache_all_inode_pages(NFS_I(inode)->fscache, inode); nfs_fscache_zap_inode_cookie(inode); } }
/* * Turn off the cache with regard to a per-inode cookie if opened for writing, * invalidating all the pages in the page cache relating to the associated * inode to clear the per-page caching. */ static void nfs_fscache_disable_inode_cookie(struct inode *inode) { clear_bit(NFS_INO_FSCACHE, &NFS_I(inode)->flags); if (NFS_I(inode)->fscache) { dfprintk(FSCACHE, "NFS: nfsi 0x%p turning cache off\n", NFS_I(inode)); /* Need to invalidate any mapped pages that were read in before * turning off the cache. */ if (inode->i_mapping && inode->i_mapping->nrpages) invalidate_inode_pages2(inode->i_mapping); nfs_fscache_zap_inode_cookie(inode); } }