diff mbox series

ext4: Destroy ext4_fc_dentry_cachep kmemcache on module removal.

Message ID 20211110134640.lyku5vklvdndw6uk@linutronix.de
State Superseded
Headers show
Series ext4: Destroy ext4_fc_dentry_cachep kmemcache on module removal. | expand

Commit Message

Sebastian Andrzej Siewior Nov. 10, 2021, 1:46 p.m. UTC
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")
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
 fs/ext4/ext4.h        | 1 +
 fs/ext4/fast_commit.c | 5 +++++
 fs/ext4/super.c       | 2 ++
 3 files changed, 8 insertions(+)

Comments

Sebastian Andrzej Siewior Nov. 22, 2021, 11:36 a.m. UTC | #1
On 2021-11-10 14:46:43 [+0100], To linux-ext4@vger.kernel.org wrote:
> 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")
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>

ping ;)

Sebastian
Lukas Czerner Nov. 29, 2021, 11:28 a.m. UTC | #2
On Wed, Nov 10, 2021 at 02:46:40PM +0100, Sebastian Andrzej Siewior wrote:
> The kmemcache for ext4_fc_dentry_cachep remains registered after module
> removal.
> 
> Destroy ext4_fc_dentry_cachep kmemcache on module removal.

Thanks! It looks good to me.

Reviewed-by: Lukas Czerner <lczerner@redhat.com>

> 
> Fixes: aa75f4d3daaeb ("ext4: main fast-commit commit path")
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
> ---
>  fs/ext4/ext4.h        | 1 +
>  fs/ext4/fast_commit.c | 5 +++++
>  fs/ext4/super.c       | 2 ++
>  3 files changed, 8 insertions(+)
> 
> diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
> index 3825195539d74..c97860ef322db 100644
> --- a/fs/ext4/ext4.h
> +++ b/fs/ext4/ext4.h
> @@ -2934,6 +2934,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;
> diff --git a/fs/ext4/fast_commit.c b/fs/ext4/fast_commit.c
> index 8ea5a81e65548..1a43af302ecba 100644
> --- a/fs/ext4/fast_commit.c
> +++ b/fs/ext4/fast_commit.c
> @@ -2185,3 +2185,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);
> +}
> diff --git a/fs/ext4/super.c b/fs/ext4/super.c
> index 88d5d274a8684..eb2dfc2a19d33 100644
> --- a/fs/ext4/super.c
> +++ b/fs/ext4/super.c
> @@ -6641,6 +6641,7 @@ static int __init ext4_init_fs(void)
>  out:
>  	unregister_as_ext2();
>  	unregister_as_ext3();
> +	ext4_fc_destroy_dentry_cache();
>  out05:
>  	destroy_inodecache();
>  out1:
> @@ -6667,6 +6668,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.33.1
>
diff mbox series

Patch

diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index 3825195539d74..c97860ef322db 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -2934,6 +2934,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;
diff --git a/fs/ext4/fast_commit.c b/fs/ext4/fast_commit.c
index 8ea5a81e65548..1a43af302ecba 100644
--- a/fs/ext4/fast_commit.c
+++ b/fs/ext4/fast_commit.c
@@ -2185,3 +2185,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);
+}
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 88d5d274a8684..eb2dfc2a19d33 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -6641,6 +6641,7 @@  static int __init ext4_init_fs(void)
 out:
 	unregister_as_ext2();
 	unregister_as_ext3();
+	ext4_fc_destroy_dentry_cache();
 out05:
 	destroy_inodecache();
 out1:
@@ -6667,6 +6668,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();