Re: [PATCH] xfs: fix online repair probing when CONFIG_XFS_ONLINE_REPAIR=n

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

 



On Wed, Jan 15, 2025 at 07:06:15AM +0100, Christoph Hellwig wrote:
> On Tue, Jan 14, 2025 at 02:48:19PM -0800, Darrick J. Wong wrote:
> > index 950f5a58dcd967..09468f50781b24 100644
> > --- a/fs/xfs/scrub/scrub.c
> > +++ b/fs/xfs/scrub/scrub.c
> > @@ -149,6 +149,15 @@ xchk_probe(
> >  	if (xchk_should_terminate(sc, &error))
> >  		return error;
> >  
> > +	/*
> > +	 * If the caller is probing to see if repair works, set the CORRUPT
> > +	 * flag (without any of the usual tracing/logging) to force us into
> > +	 * the repair codepaths.  If repair is compiled into the kernel, we'll
> > +	 * call xrep_probe and simulate a repair; otherwise, the repair
> > +	 * codepaths return EOPNOTSUPP.
> > +	 */
> > +	if (xchk_could_repair(sc))
> > +		sc->sm->sm_flags |= XFS_SCRUB_OFLAG_CORRUPT;
> 
> Stupid question: what is the point in not just directly returning
> -EOPNOTSUPP here when online repair is not supported?

Good point, we could cut it off right then and there.  Though this seems
a little gross:

	if (xchk_could_repair(sc))
#ifdef CONFIG_XFS_ONLINE_REPAIR
		sc->sm->sm_flags |= XFS_SCRUB_OFLAG_CORRUPT;
#else
		return -EOPNOTSUPP;
#endif
	return 0;

but I don't mind.  Some day the stubs will go away, fingers crossed.

--D




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux