zsmalloc: Delete an unnecessary check before the function call "iput"
diff mbox series

Message ID 559cf499-4a01-25f9-c87f-24d906626a57@users.sourceforge.net
State New, archived
Headers show
Series
  • zsmalloc: Delete an unnecessary check before the function call "iput"
Related show

Commit Message

SF Markus Elfring July 22, 2016, 6:02 p.m. UTC
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Fri, 22 Jul 2016 19:54:20 +0200

The iput() function tests whether its argument is NULL and then
returns immediately. Thus the test around the call is not needed.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 mm/zsmalloc.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Sergey Senozhatsky July 25, 2016, 12:49 a.m. UTC | #1
On (07/22/16 20:02), SF Markus Elfring wrote:
> The iput() function tests whether its argument is NULL and then
> returns immediately. Thus the test around the call is not needed.
> 
> This issue was detected by using the Coccinelle software.

there is no issue; the change is just cosmetic.


> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>

Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>



alloc_anon_inode() returns ERR_PTR, so I'd probably rather
change iput() to do IS_ERR_OR_NULL instead of !NULL.

	inode = alloc_anon_inode();
	if (IS_ERR(inode)) {
		inode = NULL;
		^^^^^^^^^^^^^
	}
	...
	iput(inode);

this NULL assignment on error path is a bit fragile.

IOW, something like this

---

diff --git a/fs/inode.c b/fs/inode.c
index 559a9da..f1b7bd2 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -1497,7 +1497,7 @@ static void iput_final(struct inode *inode)
  */
 void iput(struct inode *inode)
 {
-       if (!inode)
+       if (IS_ERR_OR_NULL(inode))
                return;
        BUG_ON(inode->i_state & I_CLEAR);
 retry:


---

	-ss

> ---
>  mm/zsmalloc.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c
> index 5e5237c..7b5fd2b 100644
> --- a/mm/zsmalloc.c
> +++ b/mm/zsmalloc.c
> @@ -2181,8 +2181,7 @@ static int zs_register_migration(struct zs_pool *pool)
>  static void zs_unregister_migration(struct zs_pool *pool)
>  {
>  	flush_work(&pool->free_work);
> -	if (pool->inode)
> -		iput(pool->inode);
> +	iput(pool->inode);
>  }
>  
>  /*
> -- 
> 2.9.2
>
Minchan Kim July 25, 2016, 9:08 a.m. UTC | #2
On Fri, Jul 22, 2016 at 08:02:08PM +0200, SF Markus Elfring wrote:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Fri, 22 Jul 2016 19:54:20 +0200
> 
> The iput() function tests whether its argument is NULL and then
> returns immediately. Thus the test around the call is not needed.
> 
> This issue was detected by using the Coccinelle software.
> 
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Acked-by: Minchan Kim <minchan@kernel.org>

Thanks!

Patch
diff mbox series

diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c
index 5e5237c..7b5fd2b 100644
--- a/mm/zsmalloc.c
+++ b/mm/zsmalloc.c
@@ -2181,8 +2181,7 @@  static int zs_register_migration(struct zs_pool *pool)
 static void zs_unregister_migration(struct zs_pool *pool)
 {
 	flush_work(&pool->free_work);
-	if (pool->inode)
-		iput(pool->inode);
+	iput(pool->inode);
 }
 
 /*