2018-02-06 02:31:23

by wanglong

[permalink] [raw]
Subject: [PATCH] jbd2: remove the conditional test

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

This patch also set NULL after the kmem_cache_destroy in function
jbd2_journal_destroy_handle_cache.

Signed-off-by: Wang Long <[email protected]>
---
fs/jbd2/journal.c | 18 +++++++-----------
fs/jbd2/revoke.c | 12 ++++--------
fs/jbd2/transaction.c | 6 ++----
3 files changed, 13 insertions(+), 23 deletions(-)

diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c
index 93016bb..3c27a61a 100644
--- a/fs/jbd2/journal.c
+++ b/fs/jbd2/journal.c
@@ -2286,8 +2286,7 @@ static void jbd2_journal_destroy_slabs(void)
int i;

for (i = 0; i < JBD2_MAX_SLABS; i++) {
- if (jbd2_slab[i])
- kmem_cache_destroy(jbd2_slab[i]);
+ kmem_cache_destroy(jbd2_slab[i]);
jbd2_slab[i] = NULL;
}
}
@@ -2388,10 +2387,8 @@ static int jbd2_journal_init_journal_head_cache(void)

static void jbd2_journal_destroy_journal_head_cache(void)
{
- if (jbd2_journal_head_cache) {
- kmem_cache_destroy(jbd2_journal_head_cache);
- jbd2_journal_head_cache = NULL;
- }
+ kmem_cache_destroy(jbd2_journal_head_cache);
+ jbd2_journal_head_cache = NULL;
}

/*
@@ -2649,11 +2646,10 @@ static int __init jbd2_journal_init_handle_cache(void)

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

/*
diff --git a/fs/jbd2/revoke.c b/fs/jbd2/revoke.c
index 696ef15..240779e 100644
--- a/fs/jbd2/revoke.c
+++ b/fs/jbd2/revoke.c
@@ -180,14 +180,10 @@ static struct jbd2_revoke_record_s *find_revoke_record(journal_t *journal,

void jbd2_journal_destroy_revoke_caches(void)
{
- if (jbd2_revoke_record_cache) {
- kmem_cache_destroy(jbd2_revoke_record_cache);
- jbd2_revoke_record_cache = NULL;
- }
- if (jbd2_revoke_table_cache) {
- kmem_cache_destroy(jbd2_revoke_table_cache);
- jbd2_revoke_table_cache = NULL;
- }
+ kmem_cache_destroy(jbd2_revoke_record_cache);
+ jbd2_revoke_record_cache = NULL;
+ kmem_cache_destroy(jbd2_revoke_table_cache);
+ jbd2_revoke_table_cache = NULL;
}

int __init jbd2_journal_init_revoke_caches(void)
diff --git a/fs/jbd2/transaction.c b/fs/jbd2/transaction.c
index ac31103..3b642e0 100644
--- a/fs/jbd2/transaction.c
+++ b/fs/jbd2/transaction.c
@@ -49,10 +49,8 @@ int __init jbd2_journal_init_transaction_cache(void)

void jbd2_journal_destroy_transaction_cache(void)
{
- if (transaction_cache) {
- kmem_cache_destroy(transaction_cache);
- transaction_cache = NULL;
- }
+ kmem_cache_destroy(transaction_cache);
+ transaction_cache = NULL;
}

void jbd2_journal_free_transaction(transaction_t *transaction)
--
1.8.3.1


2018-02-06 10:22:38

by Jan Kara

[permalink] [raw]
Subject: Re: [PATCH] jbd2: remove the conditional test

On Mon 05-02-18 22:24:39, Wang Long wrote:
> kmem_cache_destroy already handles null pointers, so we can remove the
> conditional test entirely.
>
> This patch also set NULL after the kmem_cache_destroy in function
> jbd2_journal_destroy_handle_cache.
>
> Signed-off-by: Wang Long <[email protected]>

Looks good. You can add:

Reviewed-by: Jan Kara <[email protected]>

Honza

> ---
> fs/jbd2/journal.c | 18 +++++++-----------
> fs/jbd2/revoke.c | 12 ++++--------
> fs/jbd2/transaction.c | 6 ++----
> 3 files changed, 13 insertions(+), 23 deletions(-)
>
> diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c
> index 93016bb..3c27a61a 100644
> --- a/fs/jbd2/journal.c
> +++ b/fs/jbd2/journal.c
> @@ -2286,8 +2286,7 @@ static void jbd2_journal_destroy_slabs(void)
> int i;
>
> for (i = 0; i < JBD2_MAX_SLABS; i++) {
> - if (jbd2_slab[i])
> - kmem_cache_destroy(jbd2_slab[i]);
> + kmem_cache_destroy(jbd2_slab[i]);
> jbd2_slab[i] = NULL;
> }
> }
> @@ -2388,10 +2387,8 @@ static int jbd2_journal_init_journal_head_cache(void)
>
> static void jbd2_journal_destroy_journal_head_cache(void)
> {
> - if (jbd2_journal_head_cache) {
> - kmem_cache_destroy(jbd2_journal_head_cache);
> - jbd2_journal_head_cache = NULL;
> - }
> + kmem_cache_destroy(jbd2_journal_head_cache);
> + jbd2_journal_head_cache = NULL;
> }
>
> /*
> @@ -2649,11 +2646,10 @@ static int __init jbd2_journal_init_handle_cache(void)
>
> static void jbd2_journal_destroy_handle_cache(void)
> {
> - if (jbd2_handle_cache)
> - kmem_cache_destroy(jbd2_handle_cache);
> - if (jbd2_inode_cache)
> - kmem_cache_destroy(jbd2_inode_cache);
> -
> + kmem_cache_destroy(jbd2_handle_cache);
> + jbd2_handle_cache = NULL;
> + kmem_cache_destroy(jbd2_inode_cache);
> + jbd2_inode_cache = NULL;
> }
>
> /*
> diff --git a/fs/jbd2/revoke.c b/fs/jbd2/revoke.c
> index 696ef15..240779e 100644
> --- a/fs/jbd2/revoke.c
> +++ b/fs/jbd2/revoke.c
> @@ -180,14 +180,10 @@ static struct jbd2_revoke_record_s *find_revoke_record(journal_t *journal,
>
> void jbd2_journal_destroy_revoke_caches(void)
> {
> - if (jbd2_revoke_record_cache) {
> - kmem_cache_destroy(jbd2_revoke_record_cache);
> - jbd2_revoke_record_cache = NULL;
> - }
> - if (jbd2_revoke_table_cache) {
> - kmem_cache_destroy(jbd2_revoke_table_cache);
> - jbd2_revoke_table_cache = NULL;
> - }
> + kmem_cache_destroy(jbd2_revoke_record_cache);
> + jbd2_revoke_record_cache = NULL;
> + kmem_cache_destroy(jbd2_revoke_table_cache);
> + jbd2_revoke_table_cache = NULL;
> }
>
> int __init jbd2_journal_init_revoke_caches(void)
> diff --git a/fs/jbd2/transaction.c b/fs/jbd2/transaction.c
> index ac31103..3b642e0 100644
> --- a/fs/jbd2/transaction.c
> +++ b/fs/jbd2/transaction.c
> @@ -49,10 +49,8 @@ int __init jbd2_journal_init_transaction_cache(void)
>
> void jbd2_journal_destroy_transaction_cache(void)
> {
> - if (transaction_cache) {
> - kmem_cache_destroy(transaction_cache);
> - transaction_cache = NULL;
> - }
> + kmem_cache_destroy(transaction_cache);
> + transaction_cache = NULL;
> }
>
> void jbd2_journal_free_transaction(transaction_t *transaction)
> --
> 1.8.3.1
>
>
--
Jan Kara <[email protected]>
SUSE Labs, CR

2018-05-21 02:41:09

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH] jbd2: remove the conditional test

On Mon, Feb 05, 2018 at 10:24:39PM +0800, Wang Long wrote:
> kmem_cache_destroy already handles null pointers, so we can remove the
> conditional test entirely.
>
> This patch also set NULL after the kmem_cache_destroy in function
> jbd2_journal_destroy_handle_cache.
>
> Signed-off-by: Wang Long <[email protected]>

Thanks; I clarified the patch summary to be:

jbd2: remove NULL check before calling kmem_cache_destroy()

and have applied it. Apologies for not getting to this earlier.

- Ted