On Fri, Apr 04, 2008 at 08:38:31PM +0200, Miklos Szeredi wrote: > > > probably worth looking at doing something different in the case of > > > shrinking the dcache on the parent, and leaving prune_dcache to > > > only be called in the case of trying to free up dcache under > > > memory pressure, where the superblock doesn't actually matter. > > > For the RHEL3 issue you are reffering to I fixed it by creating a > > > private list when we shrunk the parent, and submitting that list > > > to prune_dcache that way we didn't spend all this time looping. I > > > will see what can be done for upstream. > > Which sounds racy with umount. A hashed dentry must either have a > refcount greater than one, or be on dentry_unused list. This patch > breaks that assumption. > It should be racy with umount, if we notice that we're being unmounted we just break, as the unmount will free the dentry's itself through another means. I guess I could fix it so that prune_dcache will go through and add all the dentry's still on the dispose_list to the dentry_unused list at the end, but I don't see much of a reason for this since dentry_unused is just used to help keep track of what dentries can be flushed. Josef -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html