On Wed, Jul 14, 2021 at 02:19:08PM +1000, Dave Chinner wrote: > From: Dave Chinner <dchinner@xxxxxxxxxx> > > THe scrub feature checks are the last place that the superblock > feature checks are used. Convert them to mount based feature checks. > > Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx> Looks good to me, Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx> --D > --- > fs/xfs/scrub/scrub.c | 12 ++++++------ > fs/xfs/scrub/scrub.h | 2 +- > 2 files changed, 7 insertions(+), 7 deletions(-) > > diff --git a/fs/xfs/scrub/scrub.c b/fs/xfs/scrub/scrub.c > index a5b1ea9361b3..57ecbc48bbd5 100644 > --- a/fs/xfs/scrub/scrub.c > +++ b/fs/xfs/scrub/scrub.c > @@ -239,21 +239,21 @@ static const struct xchk_meta_ops meta_scrub_ops[] = { > .type = ST_PERAG, > .setup = xchk_setup_ag_iallocbt, > .scrub = xchk_finobt, > - .has = xfs_sb_version_hasfinobt, > + .has = xfs_has_finobt, > .repair = xrep_notsupported, > }, > [XFS_SCRUB_TYPE_RMAPBT] = { /* rmapbt */ > .type = ST_PERAG, > .setup = xchk_setup_ag_rmapbt, > .scrub = xchk_rmapbt, > - .has = xfs_sb_version_hasrmapbt, > + .has = xfs_has_rmapbt, > .repair = xrep_notsupported, > }, > [XFS_SCRUB_TYPE_REFCNTBT] = { /* refcountbt */ > .type = ST_PERAG, > .setup = xchk_setup_ag_refcountbt, > .scrub = xchk_refcountbt, > - .has = xfs_sb_version_hasreflink, > + .has = xfs_has_reflink, > .repair = xrep_notsupported, > }, > [XFS_SCRUB_TYPE_INODE] = { /* inode record */ > @@ -308,14 +308,14 @@ static const struct xchk_meta_ops meta_scrub_ops[] = { > .type = ST_FS, > .setup = xchk_setup_rt, > .scrub = xchk_rtbitmap, > - .has = xfs_sb_version_hasrealtime, > + .has = xfs_has_realtime, > .repair = xrep_notsupported, > }, > [XFS_SCRUB_TYPE_RTSUM] = { /* realtime summary */ > .type = ST_FS, > .setup = xchk_setup_rt, > .scrub = xchk_rtsummary, > - .has = xfs_sb_version_hasrealtime, > + .has = xfs_has_realtime, > .repair = xrep_notsupported, > }, > [XFS_SCRUB_TYPE_UQUOTA] = { /* user quota */ > @@ -383,7 +383,7 @@ xchk_validate_inputs( > if (ops->setup == NULL || ops->scrub == NULL) > goto out; > /* Does this fs even support this type of metadata? */ > - if (ops->has && !ops->has(&mp->m_sb)) > + if (ops->has && !ops->has(mp)) > goto out; > > error = -EINVAL; > diff --git a/fs/xfs/scrub/scrub.h b/fs/xfs/scrub/scrub.h > index 08a483cb46e2..b8e7ccc5e6c3 100644 > --- a/fs/xfs/scrub/scrub.h > +++ b/fs/xfs/scrub/scrub.h > @@ -27,7 +27,7 @@ struct xchk_meta_ops { > int (*repair)(struct xfs_scrub *); > > /* Decide if we even have this piece of metadata. */ > - bool (*has)(struct xfs_sb *); > + bool (*has)(struct xfs_mount *); > > /* type describing required/allowed inputs */ > enum xchk_type type; > -- > 2.31.1 >