Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull vfs lru leak fix from Al Viro: "The fix in "super: fix for destroy lrus" didn't - they need to be destroyed, all right, but that's the wrong place..." * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: fs/super.c: fix lru_list leak for real
This commit is contained in:
commit
517bf8fc21
|
@ -264,6 +264,8 @@ out_free_sb:
|
||||||
*/
|
*/
|
||||||
static inline void destroy_super(struct super_block *s)
|
static inline void destroy_super(struct super_block *s)
|
||||||
{
|
{
|
||||||
|
list_lru_destroy(&s->s_dentry_lru);
|
||||||
|
list_lru_destroy(&s->s_inode_lru);
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
free_percpu(s->s_files);
|
free_percpu(s->s_files);
|
||||||
#endif
|
#endif
|
||||||
|
@ -323,8 +325,6 @@ void deactivate_locked_super(struct super_block *s)
|
||||||
|
|
||||||
/* caches are now gone, we can safely kill the shrinker now */
|
/* caches are now gone, we can safely kill the shrinker now */
|
||||||
unregister_shrinker(&s->s_shrink);
|
unregister_shrinker(&s->s_shrink);
|
||||||
list_lru_destroy(&s->s_dentry_lru);
|
|
||||||
list_lru_destroy(&s->s_inode_lru);
|
|
||||||
|
|
||||||
put_filesystem(fs);
|
put_filesystem(fs);
|
||||||
put_super(s);
|
put_super(s);
|
||||||
|
|
Loading…
Reference in New Issue