Re: [PATCH 05/14] xfs: separate the dqrele_all inode grab logic from xfs_inode_walk_ag_grab

Darrick J. Wong
2021-06-02T03:28:15Z

On Wed, Jun 02, 2021 at 11:51:47AM +1000, Dave Chinner wrote:
> On Tue, Jun 01, 2021 at 05:53:00PM -0700, Darrick J. Wong wrote:
> > From: Darrick J. Wong <djwong@kernel.org>
> >
> > Disentangle the dqrele_all inode grab code from the "generic" inode walk
> > grabbing code, and and use the opportunity to document why the dqrele
> > grab function does what it does. Since xfs_inode_walk_ag_grab is now
> > only used for blockgc, rename it to reflect that.
> >
> > Ultimately, there will be four reasons to perform a walk of incore
> > inodes: quotaoff dquote releasing (dqrele), garbage collection of
> > speculative preallocations (blockgc), reclamation of incore inodes
> > (reclaim), and deferred inactivation (inodegc). Each of these four have
> > their own slightly different criteria for deciding if they want to
> > handle an inode, so it makes more sense to have four cohesive igrab
> > functions than one confusing parameteric grab function like we do now.
> >
> > Signed-off-by: Darrick J. Wong <djwong@kernel.org>
> > ---
> > fs/xfs/xfs_icache.c | 66 +++++++++++++++++++++++++++++++++++++++++++++++----
> > 1 file changed, 61 insertions(+), 5 deletions(-)
>
> Looks ok - one minor nit:
>
> > @@ -1642,6 +1682,22 @@ xfs_blockgc_free_quota(
> >
> > /* XFS Incore Inode Walking Code */
> >
> > +static inline bool
> > +xfs_grabbed_for_walk(
> > + enum xfs_icwalk_goal goal,
> > + struct xfs_inode *ip,
> > + int iter_flags)
> > +{
> > + switch (goal) {
> > + case XFS_ICWALK_BLOCKGC:
> > + return xfs_blockgc_igrab(ip, iter_flags);
> > + case XFS_ICWALK_DQRELE:
> > + return xfs_dqrele_igrab(ip);
> > + default:
> > + return false;
> > + }
> > +}
>
> xfs_icwalk_grab() seems to make more sense here.

Ok, changed.

> /me is wondering if all this should eventually end up under a
> xfs_icwalk namespace?

Yeah, I'll throw a renamer patch on the end of this series. Or possibly
just do it after I move the xfs_inode_walk functions to the bottom.

--D

>
> Cheers,
>
> Dave.
> --
> Dave Chinner
> david@fromorbit.com