summaryrefslogtreecommitdiff
path: root/fs/super.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/super.c')
-rw-r--r--fs/super.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/super.c b/fs/super.c
index 904459b35119..b9df9976ff7d 100644
--- a/fs/super.c
+++ b/fs/super.c
@@ -35,6 +35,7 @@
#include <linux/fscrypt.h>
#include <linux/fsnotify.h>
#include <linux/lockdep.h>
+#include <linux/rhashtable.h>
#include <linux/user_namespace.h>
#include <linux/fs_context.h>
#include <uapi/linux/mount.h>
@@ -162,6 +163,8 @@ static void destroy_super_work(struct work_struct *work)
for (i = 0; i < SB_FREEZE_LEVELS; i++)
percpu_free_rwsem(&s->s_writers.rw_sem[i]);
+ if (s->s_inode_table_init_done)
+ rhashtable_destroy(&s->s_inode_table);
kfree(s);
}
@@ -273,6 +276,8 @@ static struct super_block *alloc_super(struct file_system_type *type, int flags,
goto fail;
if (list_lru_init_memcg(&s->s_inode_lru, &s->s_shrink))
goto fail;
+ if (super_setup_inode_table(s, &default_inode_table_params))
+ goto fail;
return s;
fail: