*/
}
-void purge_sb_data(struct super_block *sb)
-{
- struct inode *inode;
-
- list_for_each_entry(inode, &sb->s_inodes, i_sb_list) {
- if (inode->i_state & (I_FREEING|I_WILL_FREE))
- continue;
- purge_inode_data(inode);
- }
-}
-
/*
* Revalidate a single file/symlink/special dentry. Assume that info nodes
* of the dentry and its parent are locked. Assume that parent(s) are all
* function). This revalidation will happen lazily and
* incrementally, as users perform operations on cached inodes. We
* would like to encourage this revalidation to happen sooner if
- * possible, so we try to invalidate as many other pages in our
- * superblock as we can.
+ * possible, so we like to try to invalidate as many other pages in
+ * our superblock as we can. We used to call drop_pagecache_sb() or
+ * a variant thereof, but either method was racy (drop_caches alone
+ * is known to be racy). So now we let the revalidation happen on a
+ * per file basis in ->d_revalidate.
*/
- purge_sb_data(sb);
/* grab new lower super references; release old ones */
for (i = 0; i < new_branches; i++)