Re: [PATCH 12/16] xfs: convert scrub to use mount-based feature checks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
> 



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux