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
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