fs/xfs/xfs_mount.c | 3 +++ 1 file changed, 3 insertions(+)
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
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
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.
© 2016 - 2026 Red Hat, Inc.