2018-02-05 16:44:24

by wanglong

[permalink] [raw]
Subject: [PATCH] jbd2: set to NULL after kmem_cache_destroy

Signed-off-by: Wang Long <[email protected]>
---
fs/jbd2/journal.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c
index 93016bb..38dc24c 100644
--- a/fs/jbd2/journal.c
+++ b/fs/jbd2/journal.c
@@ -2649,11 +2649,14 @@ static int __init jbd2_journal_init_handle_cache(void)

static void jbd2_journal_destroy_handle_cache(void)
{
- if (jbd2_handle_cache)
+ if (jbd2_handle_cache) {
kmem_cache_destroy(jbd2_handle_cache);
- if (jbd2_inode_cache)
+ jbd2_handle_cache = NULL;
+ }
+ if (jbd2_inode_cache) {
kmem_cache_destroy(jbd2_inode_cache);


2018-02-05 17:00:24

by Darrick J. Wong

[permalink] [raw]
Subject: Re: [PATCH] jbd2: set to NULL after kmem_cache_destroy

On Mon, Feb 05, 2018 at 09:39:17PM +0800, Wang Long wrote:
> Signed-off-by: Wang Long <[email protected]>
> ---
> fs/jbd2/journal.c | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c
> index 93016bb..38dc24c 100644
> --- a/fs/jbd2/journal.c
> +++ b/fs/jbd2/journal.c
> @@ -2649,11 +2649,14 @@ static int __init jbd2_journal_init_handle_cache(void)
>
> static void jbd2_journal_destroy_handle_cache(void)
> {
> - if (jbd2_handle_cache)
> + if (jbd2_handle_cache) {
> kmem_cache_destroy(jbd2_handle_cache);

kmem_cache_destroy already handles null pointers, so you can remove the
conditional test entirely.

--D

> - if (jbd2_inode_cache)
> + jbd2_handle_cache = NULL;
> + }
> + if (jbd2_inode_cache) {
> kmem_cache_destroy(jbd2_inode_cache);
> -
> + jbd2_inode_cache = NULL;
> + }
> }
>
> /*
> --
> 1.8.3.1
>

2018-02-06 02:29:52

by wanglong

[permalink] [raw]
Subject: Re: [PATCH] jbd2: set to NULL after kmem_cache_destroy


On 6/2/2018 1:00 AM, Darrick J. Wong wrote:
> On Mon, Feb 05, 2018 at 09:39:17PM +0800, Wang Long wrote:
>> Signed-off-by: Wang Long <[email protected]>
>> ---
>> fs/jbd2/journal.c | 9 ++++++---
>> 1 file changed, 6 insertions(+), 3 deletions(-)
>>
>> diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c
>> index 93016bb..38dc24c 100644
>> --- a/fs/jbd2/journal.c
>> +++ b/fs/jbd2/journal.c
>> @@ -2649,11 +2649,14 @@ static int __init jbd2_journal_init_handle_cache(void)
>>
>> static void jbd2_journal_destroy_handle_cache(void)
>> {
>> - if (jbd2_handle_cache)
>> + if (jbd2_handle_cache) {
>> kmem_cache_destroy(jbd2_handle_cache);
> kmem_cache_destroy already handles null pointers, so you can remove the
> conditional test entirely.
>
> --D
Thanks, I will send another patch to remove all conditional test in
module JBD2.
>> - if (jbd2_inode_cache)
>> + jbd2_handle_cache = NULL;
>> + }
>> + if (jbd2_inode_cache) {
>> kmem_cache_destroy(jbd2_inode_cache);
>> -
>> + jbd2_inode_cache = NULL;
>> + }
>> }
>>
>> /*
>> --
>> 1.8.3.1
>>