On Thu, 24 Jan 2013 00:32:31 +1100 Dave Chinner <david@xxxxxxxxxxxxx> wrote: > Also, the superblock shrinker is designed around a direct 1:1:1 > dependency relationship between the superblock dentry, inode and "fs > cache" objects. i.e. dentry pins inode pins fs cache object. It is > designed to keep a direct balance of the three caches by ensuring > they get scanned in amounts directly proportional to the relative > differences in their object counts. That can't be done with > separate shrinkers, hence the use of the superblock shrinker to > define the dependent relationship between the caches. I was staring at the code and at the 0e1fdafd9 changelog trying to work out why prune_super() does its weird shrinker-in-a-shrinker thing. And failing. IOW it needs a code comment, please. Ideally one which explains *why* "It is designed to keep a direct balance of the three caches...". What would go wrong if the fs were to just register its own shrinker in the expected manner? -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html