public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH 0/2] ubifs: Adjustments for ubifs_purge_xattrs()
@ 2024-09-26  9:48 Markus Elfring
  2024-09-26  9:49 ` [PATCH 1/2] ubifs: Call iput(xino) only once in ubifs_purge_xattrs() Markus Elfring
  2024-09-26  9:50 ` [PATCH 2/2] ubifs: Reduce kfree() calls " Markus Elfring
  0 siblings, 2 replies; 5+ messages in thread
From: Markus Elfring @ 2024-09-26  9:48 UTC (permalink / raw)
  To: linux-mtd, Richard Weinberger, Zhihao Cheng; +Cc: LKML, kernel-janitors

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Thu, 26 Sep 2024 11:38:22 +0200

A few update suggestions were taken into account
from static source code analysis.

Markus Elfring (2):
  Call iput(xino) only once
  Reduce kfree() calls

 fs/ubifs/xattr.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

--
2.46.1


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/2] ubifs: Call iput(xino) only once in ubifs_purge_xattrs()
  2024-09-26  9:48 [PATCH 0/2] ubifs: Adjustments for ubifs_purge_xattrs() Markus Elfring
@ 2024-09-26  9:49 ` Markus Elfring
  2024-09-26 11:12   ` Zhihao Cheng
  2024-09-26  9:50 ` [PATCH 2/2] ubifs: Reduce kfree() calls " Markus Elfring
  1 sibling, 1 reply; 5+ messages in thread
From: Markus Elfring @ 2024-09-26  9:49 UTC (permalink / raw)
  To: linux-mtd, Richard Weinberger, Zhihao Cheng; +Cc: LKML, kernel-janitors

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Thu, 26 Sep 2024 11:05:29 +0200

An iput(xino) call was immediately used after a return value check
for a remove_xattr() call in this function implementation.
Thus call such a function only once instead directly before the check.

This issue was transformed by using the Coccinelle software.

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

diff --git a/fs/ubifs/xattr.c b/fs/ubifs/xattr.c
index f734588b224a..7757959e9f09 100644
--- a/fs/ubifs/xattr.c
+++ b/fs/ubifs/xattr.c
@@ -541,16 +541,14 @@ int ubifs_purge_xattrs(struct inode *host)

 		clear_nlink(xino);
 		err = remove_xattr(c, host, xino, &nm);
+		iput(xino);
 		if (err) {
 			kfree(pxent);
 			kfree(xent);
-			iput(xino);
 			ubifs_err(c, "cannot remove xattr, error %d", err);
 			goto out_err;
 		}

-		iput(xino);
-
 		kfree(pxent);
 		pxent = xent;
 		key_read(c, &xent->key, &key);
--
2.46.1


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/2] ubifs: Reduce kfree() calls in ubifs_purge_xattrs()
  2024-09-26  9:48 [PATCH 0/2] ubifs: Adjustments for ubifs_purge_xattrs() Markus Elfring
  2024-09-26  9:49 ` [PATCH 1/2] ubifs: Call iput(xino) only once in ubifs_purge_xattrs() Markus Elfring
@ 2024-09-26  9:50 ` Markus Elfring
  2024-09-26 11:13   ` Zhihao Cheng
  1 sibling, 1 reply; 5+ messages in thread
From: Markus Elfring @ 2024-09-26  9:50 UTC (permalink / raw)
  To: linux-mtd, Richard Weinberger, Zhihao Cheng; +Cc: LKML, kernel-janitors

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Thu, 26 Sep 2024 11:28:48 +0200

Move a pair of kfree() calls behind the label “out_err”
so that two statements can be better reused at the end of
this function implementation.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 fs/ubifs/xattr.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/fs/ubifs/xattr.c b/fs/ubifs/xattr.c
index 7757959e9f09..a514dc4dc535 100644
--- a/fs/ubifs/xattr.c
+++ b/fs/ubifs/xattr.c
@@ -532,8 +532,6 @@ int ubifs_purge_xattrs(struct inode *host)
 			ubifs_err(c, "dead directory entry '%s', error %d",
 				  xent->name, err);
 			ubifs_ro_mode(c, err);
-			kfree(pxent);
-			kfree(xent);
 			goto out_err;
 		}

@@ -543,8 +541,6 @@ int ubifs_purge_xattrs(struct inode *host)
 		err = remove_xattr(c, host, xino, &nm);
 		iput(xino);
 		if (err) {
-			kfree(pxent);
-			kfree(xent);
 			ubifs_err(c, "cannot remove xattr, error %d", err);
 			goto out_err;
 		}
@@ -564,6 +560,8 @@ int ubifs_purge_xattrs(struct inode *host)
 	return 0;

 out_err:
+	kfree(pxent);
+	kfree(xent);
 	up_write(&ubifs_inode(host)->xattr_sem);
 	return err;
 }
--
2.46.1


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] ubifs: Call iput(xino) only once in ubifs_purge_xattrs()
  2024-09-26  9:49 ` [PATCH 1/2] ubifs: Call iput(xino) only once in ubifs_purge_xattrs() Markus Elfring
@ 2024-09-26 11:12   ` Zhihao Cheng
  0 siblings, 0 replies; 5+ messages in thread
From: Zhihao Cheng @ 2024-09-26 11:12 UTC (permalink / raw)
  To: Markus Elfring, linux-mtd, Richard Weinberger; +Cc: LKML, kernel-janitors

在 2024/9/26 17:49, Markus Elfring 写道:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Thu, 26 Sep 2024 11:05:29 +0200
> 
> An iput(xino) call was immediately used after a return value check
> for a remove_xattr() call in this function implementation.
> Thus call such a function only once instead directly before the check.
> 
> This issue was transformed by using the Coccinelle software.
> 
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
> ---
>   fs/ubifs/xattr.c | 4 +---
>   1 file changed, 1 insertion(+), 3 deletions(-)
> 

Reviewed-by: Zhihao Cheng <chengzhihao1@huawei.com>
> diff --git a/fs/ubifs/xattr.c b/fs/ubifs/xattr.c
> index f734588b224a..7757959e9f09 100644
> --- a/fs/ubifs/xattr.c
> +++ b/fs/ubifs/xattr.c
> @@ -541,16 +541,14 @@ int ubifs_purge_xattrs(struct inode *host)
> 
>   		clear_nlink(xino);
>   		err = remove_xattr(c, host, xino, &nm);
> +		iput(xino);
>   		if (err) {
>   			kfree(pxent);
>   			kfree(xent);
> -			iput(xino);
>   			ubifs_err(c, "cannot remove xattr, error %d", err);
>   			goto out_err;
>   		}
> 
> -		iput(xino);
> -
>   		kfree(pxent);
>   		pxent = xent;
>   		key_read(c, &xent->key, &key);
> --
> 2.46.1
> 
> .
> 


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] ubifs: Reduce kfree() calls in ubifs_purge_xattrs()
  2024-09-26  9:50 ` [PATCH 2/2] ubifs: Reduce kfree() calls " Markus Elfring
@ 2024-09-26 11:13   ` Zhihao Cheng
  0 siblings, 0 replies; 5+ messages in thread
From: Zhihao Cheng @ 2024-09-26 11:13 UTC (permalink / raw)
  To: Markus Elfring, linux-mtd, Richard Weinberger; +Cc: LKML, kernel-janitors

在 2024/9/26 17:50, Markus Elfring 写道:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Thu, 26 Sep 2024 11:28:48 +0200
> 
> Move a pair of kfree() calls behind the label “out_err”
> so that two statements can be better reused at the end of
> this function implementation.
> 
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
> ---
>   fs/ubifs/xattr.c | 6 ++----
>   1 file changed, 2 insertions(+), 4 deletions(-)
> 

Reviewed-by: Zhihao Cheng <chengzhihao1@huawei.com>
> diff --git a/fs/ubifs/xattr.c b/fs/ubifs/xattr.c
> index 7757959e9f09..a514dc4dc535 100644
> --- a/fs/ubifs/xattr.c
> +++ b/fs/ubifs/xattr.c
> @@ -532,8 +532,6 @@ int ubifs_purge_xattrs(struct inode *host)
>   			ubifs_err(c, "dead directory entry '%s', error %d",
>   				  xent->name, err);
>   			ubifs_ro_mode(c, err);
> -			kfree(pxent);
> -			kfree(xent);
>   			goto out_err;
>   		}
> 
> @@ -543,8 +541,6 @@ int ubifs_purge_xattrs(struct inode *host)
>   		err = remove_xattr(c, host, xino, &nm);
>   		iput(xino);
>   		if (err) {
> -			kfree(pxent);
> -			kfree(xent);
>   			ubifs_err(c, "cannot remove xattr, error %d", err);
>   			goto out_err;
>   		}
> @@ -564,6 +560,8 @@ int ubifs_purge_xattrs(struct inode *host)
>   	return 0;
> 
>   out_err:
> +	kfree(pxent);
> +	kfree(xent);
>   	up_write(&ubifs_inode(host)->xattr_sem);
>   	return err;
>   }
> --
> 2.46.1
> 
> .
> 


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-09-26 11:13 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-26  9:48 [PATCH 0/2] ubifs: Adjustments for ubifs_purge_xattrs() Markus Elfring
2024-09-26  9:49 ` [PATCH 1/2] ubifs: Call iput(xino) only once in ubifs_purge_xattrs() Markus Elfring
2024-09-26 11:12   ` Zhihao Cheng
2024-09-26  9:50 ` [PATCH 2/2] ubifs: Reduce kfree() calls " Markus Elfring
2024-09-26 11:13   ` Zhihao Cheng

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox