Re: [PATCH 01/11] xfs_scrub: fix handling of read-verify pool runtime errors

Darrick J. Wong
2019-10-15T17:19:52Z

On Tue, Oct 15, 2019 at 12:07:11PM -0500, Eric Sandeen wrote:
> On 9/25/19 4:34 PM, Darrick J. Wong wrote:
> > From: Darrick J. Wong <darrick.wong@oracle.com>
> >
> > Fix some bogosity with how we handle runtime errors in the read verify
> > pool functions. First of all, memory allocation failures shouldn't be
> > recorded as disk IO errors, they should just complain and abort the
> > phase. Second, we need to collect any other runtime errors in the IO
> > thread and abort the phase instead of silently ignoring them.
> >
> > Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
> > ---
> > scrub/read_verify.c | 23 +++++++++++++++++++----
> > 1 file changed, 19 insertions(+), 4 deletions(-)
> >
> >
> > diff --git a/scrub/read_verify.c b/scrub/read_verify.c
> > index b890c92f..00627307 100644
> > --- a/scrub/read_verify.c
> > +++ b/scrub/read_verify.c
> > @@ -53,6 +53,7 @@ struct read_verify_pool {
> > struct disk *disk; /* which disk? */
> > read_verify_ioerr_fn_t ioerr_fn; /* io error callback */
> > size_t miniosz; /* minimum io size, bytes */
> > + int errors_seen;
> > };
>
> I'd like to see a comment that says /* runtime/operational errors */
> to differentiate between verification errors.
>
> Or maybe even rename it to runtime_errors or something.
>
> I'm also confused; it's an int, but this patch assigns it with true/false,
> the next patch assigns errnos i.e. ECANCELED, .... what's it supposed to be?

It's a mess. :(

It ought to be an int since that's where we're going anyway.

Will add a comment, change the name, and make the usage consistent
throughout the series.

--D