2013-02-12 18:23:24

by Tim Gardner

[permalink] [raw]
Subject: [PATCH linux-next] jbd: start_this_handle(): remove kfree() redundant null check

smatch analysis:

fs/jbd/transaction.c:236 start_this_handle() info: redundant null
check on new_transaction calling kfree()

Cc: Andrew Morton <[email protected]>
Cc: Jan Kara <[email protected]>
Cc: [email protected]
Signed-off-by: Tim Gardner <[email protected]>
---
fs/jbd/transaction.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/fs/jbd/transaction.c b/fs/jbd/transaction.c
index 071d690..ee40b4e 100644
--- a/fs/jbd/transaction.c
+++ b/fs/jbd/transaction.c
@@ -232,8 +232,7 @@ repeat_locked:

lock_map_acquire(&handle->h_lockdep_map);
out:
- if (unlikely(new_transaction)) /* It's usually NULL */
- kfree(new_transaction);
+ kfree(new_transaction);
return ret;
}

--
1.7.9.5


2013-02-14 16:15:22

by Jan Kara

[permalink] [raw]
Subject: Re: [PATCH linux-next] jbd: start_this_handle(): remove kfree() redundant null check

On Tue 12-02-13 11:23:24, Tim Gardner wrote:
> smatch analysis:
>
> fs/jbd/transaction.c:236 start_this_handle() info: redundant null
> check on new_transaction calling kfree()
>
> Cc: Andrew Morton <[email protected]>
> Cc: Jan Kara <[email protected]>
> Cc: [email protected]
> Signed-off-by: Tim Gardner <[email protected]>
> ---
> fs/jbd/transaction.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/fs/jbd/transaction.c b/fs/jbd/transaction.c
> index 071d690..ee40b4e 100644
> --- a/fs/jbd/transaction.c
> +++ b/fs/jbd/transaction.c
> @@ -232,8 +232,7 @@ repeat_locked:
>
> lock_map_acquire(&handle->h_lockdep_map);
> out:
> - if (unlikely(new_transaction)) /* It's usually NULL */
> - kfree(new_transaction);
> + kfree(new_transaction);
> return ret;
Thanks for the patch but I actually think this is deliberate because
new_transaction is usually NULL while kfree() is optimized for passed
pointer to be usually != NULL. Also we save a function call in the common
case. So I'm for the code to stay as is.

Honza
--
Jan Kara <[email protected]>
SUSE Labs, CR