2022-06-21 03:38:56

by Stephen Zhang

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

There are cases that xfs_mod_freecounter() will get called when delta
equals 0 while it's unnecessary.

Signed-off-by: Shida Zhang <[email protected]>
---
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


2022-06-21 05:17:46

by Dave Chinner

[permalink] [raw]
Subject: Re: [PATCH] xfs: return when delta equals 0 in xfs_mod_freecounter

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
[email protected]

2022-06-21 07:11:29

by Stephen Zhang

[permalink] [raw]
Subject: Re: [PATCH] xfs: return when delta equals 0 in xfs_mod_freecounter

Dave Chinner <[email protected]> 于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
> [email protected]

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

Cheers,

Stephen.