[PATCH] xfs: return when delta equals 0 in xfs_mod_freecounter

Shida Zhang posted 1 patch 3 years, 10 months ago
fs/xfs/xfs_mount.c | 3 +++
1 file changed, 3 insertions(+)
[PATCH] xfs: return when delta equals 0 in xfs_mod_freecounter
Posted by Shida Zhang 3 years, 10 months ago
There are cases that xfs_mod_freecounter() will get called when delta
equals 0 while it's unnecessary.

Signed-off-by: Shida Zhang <zhangshida@kylinos.cn>
---
 fs/xfs/xfs_mount.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
index daa8d29c46b4..a3db932fd1fc 100644
--- a/fs/xfs/xfs_mount.c
+++ b/fs/xfs/xfs_mount.c
@@ -1129,6 +1129,9 @@ xfs_mod_freecounter(
 	if (rsvd)
 		ASSERT(has_resv_pool);
 
+	if (delta == 0)
+		return 0;
+
 	if (delta > 0) {
 		/*
 		 * If the reserve pool is depleted, put blocks back into it
-- 
2.25.1
Re: [PATCH] xfs: return when delta equals 0 in xfs_mod_freecounter
Posted by Dave Chinner 3 years, 10 months ago
On Tue, Jun 21, 2022 at 11:11:13AM +0800, Shida Zhang wrote:
> There are cases that xfs_mod_freecounter() will get called when delta
> equals 0 while it's unnecessary.

AFAICT all of the call paths are guarded by checks to ensure the
delta is, in fact, not zero. i.e. if the delta is zero, we shouldn't
be calling xfs_mod_fdblocks() or xfs_mod_frextents() at all.

Can you explain in more detail what code path leads to delta = 0
here?

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com
Re: [PATCH] xfs: return when delta equals 0 in xfs_mod_freecounter
Posted by Stephen Zhang 3 years, 10 months ago
Dave Chinner <david@fromorbit.com> 于2022年6月21日周二 12:35写道:
>
> On Tue, Jun 21, 2022 at 11:11:13AM +0800, Shida Zhang wrote:
> > There are cases that xfs_mod_freecounter() will get called when delta
> > equals 0 while it's unnecessary.
>
> AFAICT all of the call paths are guarded by checks to ensure the
> delta is, in fact, not zero. i.e. if the delta is zero, we shouldn't
> be calling xfs_mod_fdblocks() or xfs_mod_frextents() at all.
>
> Can you explain in more detail what code path leads to delta = 0
> here?
>
> Cheers,
>
> Dave.
> --
> Dave Chinner
> david@fromorbit.com

Yeah. I will give it in another v2 version patch.

Cheers,

Stephen.