FYI, the "shrinker" interface in include/linux/shrinker.h is how the VM tells subsystems to shrink their memory usage. It is used for various slab caches, and the XFS buffercache in fs/xfs/linux-2.6/xfs_buf.c