From: Darrick J. Wong Date: Fri, 9 Mar 2018 02:35:23 +0000 (-0600) Subject: xfs_scrub: don't ask user to run xfs_repair for only warnings X-Git-Tag: v4.16.0-rc1~46 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c767c5aee0427c117b9338a62a5f140befd15aaa;p=thirdparty%2Fxfsprogs-dev.git xfs_scrub: don't ask user to run xfs_repair for only warnings Don't advise the user to run xfs_repair on a filesystem that triggers warnings but no errors; there's no corruption for it to fix. Signed-off-by: Darrick J. Wong Reviewed-by: Eric Sandeen Signed-off-by: Eric Sandeen --- diff --git a/scrub/phase1.c b/scrub/phase1.c index b856a7f50..002c6425f 100644 --- a/scrub/phase1.c +++ b/scrub/phase1.c @@ -237,6 +237,6 @@ _("Unable to find realtime device path.")); * purely setup errors). */ log_info(ctx, _("Invoking online scrub."), ctx); - ctx->need_repair = true; + ctx->scrub_setup_succeeded = true; return true; } diff --git a/scrub/xfs_scrub.c b/scrub/xfs_scrub.c index 7ab0c3ee6..7ee02b669 100644 --- a/scrub/xfs_scrub.c +++ b/scrub/xfs_scrub.c @@ -522,7 +522,12 @@ report_outcome( total_errors, ctx->warnings_found); } - if (ctx->need_repair) + /* + * Don't advise the user to run repair unless we were successful in + * setting up the scrub and we actually saw corruptions. Warnings + * are not corruptions. + */ + if (ctx->scrub_setup_succeeded && total_errors > 0) fprintf(stderr, _("%s: Unmount and run xfs_repair.\n"), ctx->mntpoint); } diff --git a/scrub/xfs_scrub.h b/scrub/xfs_scrub.h index b455747dd..aa130a73f 100644 --- a/scrub/xfs_scrub.h +++ b/scrub/xfs_scrub.h @@ -96,7 +96,7 @@ struct scrub_ctx { unsigned long long naming_warnings; unsigned long long repairs; unsigned long long preens; - bool need_repair; + bool scrub_setup_succeeded; bool preen_triggers[XFS_SCRUB_TYPE_NR]; };