Message ID | 20220621031113.1222877-1-zhangshida@kylinos.cn (mailing list archive) |
---|---|
State | Deferred, archived |
Headers | show |
Series | xfs: return when delta equals 0 in xfs_mod_freecounter | expand |
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> 于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.
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
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(+)