Do two list_lru_init_memcg() calls after prealloc_super().
destroy_unused_super() in fail path is OK with this.
Next patch needs such the order.

Signed-off-by: Kirill Tkhai <ktk...@virtuozzo.com>
Acked-by: Vladimir Davydov <vdavydov....@gmail.com>
Tested-by: Shakeel Butt <shake...@google.com>
---
 fs/super.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/fs/super.c b/fs/super.c
index 50728d9c1a05..78227c4ddb21 100644
--- a/fs/super.c
+++ b/fs/super.c
@@ -244,10 +244,6 @@ static struct super_block *alloc_super(struct 
file_system_type *type, int flags,
        INIT_LIST_HEAD(&s->s_inodes_wb);
        spin_lock_init(&s->s_inode_wblist_lock);
 
-       if (list_lru_init_memcg(&s->s_dentry_lru))
-               goto fail;
-       if (list_lru_init_memcg(&s->s_inode_lru))
-               goto fail;
        s->s_count = 1;
        atomic_set(&s->s_active, 1);
        mutex_init(&s->s_vfs_rename_mutex);
@@ -265,6 +261,10 @@ static struct super_block *alloc_super(struct 
file_system_type *type, int flags,
        s->s_shrink.flags = SHRINKER_NUMA_AWARE | SHRINKER_MEMCG_AWARE;
        if (prealloc_shrinker(&s->s_shrink))
                goto fail;
+       if (list_lru_init_memcg(&s->s_dentry_lru))
+               goto fail;
+       if (list_lru_init_memcg(&s->s_inode_lru))
+               goto fail;
        return s;
 
 fail:

Reply via email to