Thread (3 messages) 3 messages, 3 authors, 2016-07-25

Re: [PATCH] zsmalloc: Delete an unnecessary check before the function call "iput"

From: Sergey Senozhatsky <hidden>
Date: 2016-07-25 00:50:06
Also in: kernel-janitors, lkml
Subsystem: filesystems (vfs and infrastructure), the rest · Maintainers: Alexander Viro, Christian Brauner, Linus Torvalds

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 <redacted>
Reviewed-by: Sergey Senozhatsky <redacted>



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
quoted hunk ↗ jump to hunk
---
 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
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help