summaryrefslogtreecommitdiff
path: root/include/linux/fs.h
diff options
context:
space:
mode:
authorDave Chinner <dchinner@redhat.com>2011-07-08 14:14:39 +1000
committerAl Viro <viro@zeniv.linux.org.uk>2011-07-20 01:44:35 -0400
commit98b745c647a5a90c3c21ea43cbfad9a47b0dfad7 (patch)
tree08917a620b6d15076223c1ef75996a1a76a13abd /include/linux/fs.h
parentfcb94f72d3e0f4f34b326c2986da8e5996daf72c (diff)
downloadlinux-stable-98b745c647a5a90c3c21ea43cbfad9a47b0dfad7.tar.gz
linux-stable-98b745c647a5a90c3c21ea43cbfad9a47b0dfad7.tar.bz2
linux-stable-98b745c647a5a90c3c21ea43cbfad9a47b0dfad7.zip
inode: Make unused inode LRU per superblock
The inode unused list is currently a global LRU. This does not match the other global filesystem cache - the dentry cache - which uses per-superblock LRU lists. Hence we have related filesystem object types using different LRU reclaimation schemes. To enable a per-superblock filesystem cache shrinker, both of these caches need to have per-sb unused object LRU lists. Hence this patch converts the global inode LRU to per-sb LRUs. The patch only does rudimentary per-sb propotioning in the shrinker infrastructure, as this gets removed when the per-sb shrinker callouts are introduced later on. Signed-off-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include/linux/fs.h')
-rw-r--r--include/linux/fs.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h
index a0011aef4338..9724f0a48742 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -1397,6 +1397,10 @@ struct super_block {
struct list_head s_dentry_lru; /* unused dentry lru */
int s_nr_dentry_unused; /* # of dentry on lru */
+ /* inode_lru_lock protects s_inode_lru and s_nr_inodes_unused */
+ struct list_head s_inode_lru; /* unused inode lru */
+ int s_nr_inodes_unused; /* # of inodes on lru */
+
struct block_device *s_bdev;
struct backing_dev_info *s_bdi;
struct mtd_info *s_mtd;