summaryrefslogtreecommitdiffstats
path: root/fs/super.c
diff options
context:
space:
mode:
authorGlauber Costa <glommer@gmail.com>2013-08-28 10:18:18 +1000
committerAl Viro <viro@zeniv.linux.org.uk>2013-09-10 18:56:32 -0400
commitf5e1dd34561e0fb06400b378d595198918833021 (patch)
tree2cdaf7568df3ab762f42e7849fc9211dcb60d1bc /fs/super.c
parent5ca302c8e502ca53b7d75f12127ec0289904003a (diff)
downloadlinux-f5e1dd34561e0fb06400b378d595198918833021.tar.gz
linux-f5e1dd34561e0fb06400b378d595198918833021.tar.bz2
linux-f5e1dd34561e0fb06400b378d595198918833021.zip
super: fix for destroy lrus
This patch adds the missing call to list_lru_destroy (spotted by Li Zhong) and moves the deletion to after the shrinker is unregistered, as correctly spotted by Dave Signed-off-by: Glauber Costa <glommer@openvz.org> Cc: Michal Hocko <mhocko@suse.cz> Cc: Dave Chinner <dchinner@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/super.c')
-rw-r--r--fs/super.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/super.c b/fs/super.c
index 269d96857caa..3a96c9783a8b 100644
--- a/fs/super.c
+++ b/fs/super.c
@@ -323,6 +323,9 @@ void deactivate_locked_super(struct super_block *s)
/* caches are now gone, we can safely kill the shrinker now */
unregister_shrinker(&s->s_shrink);
+ list_lru_destroy(&s->s_dentry_lru);
+ list_lru_destroy(&s->s_inode_lru);
+
put_filesystem(fs);
put_super(s);
} else {