Excerpts from Hugh Dickins's message of 2011-05-31 13:05:27 -0400: > On Tue, 31 May 2011, Dan Magenheimer wrote: > > > > > > truncate_inode_pages_range() and invalidate_inode_pages2_range() > > > call cleancache_flush_inode(mapping) before and after: shouldn't > > > invalidate_mapping_pages() be doing the same? > > > > I don't claim to be an expert on VFS, and so I have cc'ed > > Chris Mason who originally placed the cleancache hooks > > in VFS, but I think this patch is unnecessary. Instead > > of flushing ALL of the cleancache pages belonging to > > the inode with cleancache_flush_inode, the existing code > > eventually calls __delete_from_page_cache on EACH page > > that is being invalidated. > > On each one that's in pagecache (and satisfies the other "can we > do it easily?" conditions peculiar to invalidate_mapping_pages()). > But there may be other slots in the range that don't reach > __delete_from_page_cache() e.g. because not currently in pagecache, > but whose cleancache ought to be flushed. I think that's what a > caller of invalidate_mapping_pages(), e.g. drop caches, expects. We call invalidate_mapping_pages from prune_icache, so if we drop the cleancache there we lose the cache entries any time the inode is dropped from ram. Is there a specific case you're thinking of where we want to drop the cleancache but don't have the pages? O_DIRECT perhaps? -chris -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>