On Wed, Jun 26, 2019 at 01:46:45PM -0700, Darrick J. Wong wrote: > From: Darrick J. Wong <darrick.wong@xxxxxxxxxx> > > When we're iterating all the attributes using the built-in xattr > iterator, we can use the seen_enough variable to pass error codes back > to the main scrub function instead of flattening them into 0/1. This > will be used in a more exciting fashion in upcoming patches. > > Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> > --- > fs/xfs/scrub/attr.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > > diff --git a/fs/xfs/scrub/attr.c b/fs/xfs/scrub/attr.c > index dce74ec57038..f0fd26abd39d 100644 > --- a/fs/xfs/scrub/attr.c > +++ b/fs/xfs/scrub/attr.c > @@ -83,7 +83,7 @@ xchk_xattr_listent( > sx = container_of(context, struct xchk_xattr, context); > > if (xchk_should_terminate(sx->sc, &error)) { > - context->seen_enough = 1; > + context->seen_enough = error; It might be appropriate to update the xfs_attr_list_context structure definition comment since 'seen_enough' is not self explanatory as an error code..? Otherwise looks fine: Reviewed-by: Brian Foster <bfoster@xxxxxxxxxx> > return; > } > > @@ -125,7 +125,7 @@ xchk_xattr_listent( > args.blkno); > fail_xref: > if (sx->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT) > - context->seen_enough = 1; > + context->seen_enough = XFS_ITER_ABORT; > return; > } > > @@ -464,6 +464,10 @@ xchk_xattr( > error = xfs_attr_list_int_ilocked(&sx.context); > if (!xchk_fblock_process_error(sc, XFS_ATTR_FORK, 0, &error)) > goto out; > + > + /* Did our listent function try to return any errors? */ > + if (sx.context.seen_enough < 0) > + error = sx.context.seen_enough; > out: > return error; > } >