diff options
author | Dave Chinner <dchinner@redhat.com> | 2011-07-08 00:14:39 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2011-07-20 01:44:35 -0400 |
commit | 98b745c647a5a90c3c21ea43cbfad9a47b0dfad7 (patch) | |
tree | 08917a620b6d15076223c1ef75996a1a76a13abd /fs/super.c | |
parent | fcb94f72d3e0f4f34b326c2986da8e5996daf72c (diff) |
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 'fs/super.c')
-rw-r--r-- | fs/super.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/super.c b/fs/super.c index 263edeb9f0e9..e8e6dbfefe8c 100644 --- a/fs/super.c +++ b/fs/super.c | |||
@@ -77,6 +77,7 @@ static struct super_block *alloc_super(struct file_system_type *type) | |||
77 | INIT_HLIST_BL_HEAD(&s->s_anon); | 77 | INIT_HLIST_BL_HEAD(&s->s_anon); |
78 | INIT_LIST_HEAD(&s->s_inodes); | 78 | INIT_LIST_HEAD(&s->s_inodes); |
79 | INIT_LIST_HEAD(&s->s_dentry_lru); | 79 | INIT_LIST_HEAD(&s->s_dentry_lru); |
80 | INIT_LIST_HEAD(&s->s_inode_lru); | ||
80 | init_rwsem(&s->s_umount); | 81 | init_rwsem(&s->s_umount); |
81 | mutex_init(&s->s_lock); | 82 | mutex_init(&s->s_lock); |
82 | lockdep_set_class(&s->s_umount, &type->s_umount_key); | 83 | lockdep_set_class(&s->s_umount, &type->s_umount_key); |