[PATCH v2 04/16] xfs_scrub: don't ask user to run xfs_repair for only warnings

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

 



From: Darrick J. Wong <darrick.wong@xxxxxxxxxx>

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 <darrick.wong@xxxxxxxxxx>
---
v2: fix confusing variable name, add more comments
---
 scrub/phase1.c    |    2 +-
 scrub/xfs_scrub.c |    7 ++++++-
 scrub/xfs_scrub.h |    2 +-
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/scrub/phase1.c b/scrub/phase1.c
index b856a7f..002c642 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 7ab0c3e..7ee02b6 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 b455747..aa130a7 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];
 };
 
--
To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux