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