Skip to contentSkip to conversation

ext4: Destroy ext4_fc_dentry_cachep kmemcache on module removal.

PATCH In review Sebastian Andrzej Siewior 2 participants 2 messages Dec 14, 2021 – Dec 17, 2021 ext4 file system

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ext4: Destroy ext4_fc_dentry_cachep kmemcache on module removal.

The kmemcache for ext4_fc_dentry_cachep remains registered after module removal.

Destroy ext4_fc_dentry_cachep kmemcache on module removal.

Fixes aa75f4d3daaeb ("ext4: main fast-commit commit path")
---
 fs/ext4/ext4.h        | 1 +
 fs/ext4/fast_commit.c | 5 +++++
 fs/ext4/super.c       | 2 ++
 3 files changed, 8 insertions(+)
fs/ext4/ext4.h +1 -0
index 404dd50856e5d..af7088085d4e4 100644
@@ -2935,6 +2935,7 @@ bool ext4_fc_replay_check_excluded(struct super_block *sb, ext4_fsblk_t block);
 void ext4_fc_replay_cleanup(struct super_block *sb);
 int ext4_fc_commit(journal_t *journal, tid_t commit_tid);
 int __init ext4_fc_init_dentry_cache(void);
+void ext4_fc_destroy_dentry_cache(void);
 
 /* mballoc.c */
 extern const struct seq_operations ext4_mb_seq_groups_ops;
fs/ext4/fast_commit.c +5 -0
index 0f32b445582ab..4665508efd778 100644
@@ -2192,3 +2192,8 @@ int __init ext4_fc_init_dentry_cache(void)
 
 	return 0;
 }
+
+void ext4_fc_destroy_dentry_cache(void)
+{
+	kmem_cache_destroy(ext4_fc_dentry_cachep);
+}
fs/ext4/super.c +2 -0
index 4e33b5eca694d..71185a217d05b 100644
@@ -6649,6 +6649,7 @@ static int __init ext4_init_fs(void)
 out:
 	unregister_as_ext2();
 	unregister_as_ext3();
+	ext4_fc_destroy_dentry_cache();
 out05:
 	destroy_inodecache();
 out1:
@@ -6675,6 +6676,7 @@ static void __exit ext4_exit_fs(void)
 	unregister_as_ext2();
 	unregister_as_ext3();
 	unregister_filesystem(&ext4_fs_type);
+	ext4_fc_destroy_dentry_cache();
 	destroy_inodecache();
 	ext4_exit_mballoc();
 	ext4_exit_sysfs();
Signature · 1 line
2.34.1
Reviewed-by on v1 1/1
#1 lore raw

Thanks Sebastian for the patch, it looks good.

Quoted 64 lines · Sebastian Andrzej Siewior

The kmemcache for ext4_fc_dentry_cachep remains registered after module removal.

Destroy ext4_fc_dentry_cachep kmemcache on module removal.

Fixes aa75f4d3daaeb ("ext4: main fast-commit commit path")
---
 fs/ext4/ext4.h        | 1 +
 fs/ext4/fast_commit.c | 5 +++++
 fs/ext4/super.c       | 2 ++
 3 files changed, 8 insertions(+)
fs/ext4/ext4.h +1 -0
index 404dd50856e5d..af7088085d4e4 100644
@@ -2935,6 +2935,7 @@ bool ext4_fc_replay_check_excluded(struct super_block *sb, ext4_fsblk_t block);
 void ext4_fc_replay_cleanup(struct super_block *sb);
 int ext4_fc_commit(journal_t *journal, tid_t commit_tid);
 int __init ext4_fc_init_dentry_cache(void);
+void ext4_fc_destroy_dentry_cache(void);
 
 /* mballoc.c */
 extern const struct seq_operations ext4_mb_seq_groups_ops;
fs/ext4/fast_commit.c +5 -0
index 0f32b445582ab..4665508efd778 100644
@@ -2192,3 +2192,8 @@ int __init ext4_fc_init_dentry_cache(void)
 
        return 0;
 }
+
+void ext4_fc_destroy_dentry_cache(void)
+{
+       kmem_cache_destroy(ext4_fc_dentry_cachep);
+}
fs/ext4/super.c +2 -1
index 4e33b5eca694d..71185a217d05b 100644
@@ -6649,6 +6649,7 @@ static int __init ext4_init_fs(void)
 out:
        unregister_as_ext2();
        unregister_as_ext3();
+       ext4_fc_destroy_dentry_cache();
 out05:
        destroy_inodecache();
 out1:
@@ -6675,6 +6676,7 @@ static void __exit ext4_exit_fs(void)
        unregister_as_ext2();
        unregister_as_ext3();
        unregister_filesystem(&ext4_fs_type);
+       ext4_fc_destroy_dentry_cache();
        destroy_inodecache();
        ext4_exit_mballoc();
        ext4_exit_sysfs();
--

2.34.1