From 7a9d1ac4b042a99f14f5535e945699c2d0a48882 Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" Date: Wed, 1 Aug 2018 17:06:44 -0500 Subject: [PATCH] xfs_scrub: allow developers to force repairs Now that we have an error injection knob in the kernel to simulate corruptions, enable it in xfs_scrub so that developers can test all the repair capabilities. Signed-off-by: Darrick J. Wong Reviewed-by: Eric Sandeen Signed-off-by: Eric Sandeen --- scrub/scrub.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scrub/scrub.c b/scrub/scrub.c index 79b3304fa..61caff9b0 100644 --- a/scrub/scrub.c +++ b/scrub/scrub.c @@ -598,14 +598,18 @@ __xfs_scrub_test( bool repair) { struct xfs_scrub_metadata meta = {0}; + struct xfs_error_injection inject; static bool injected; int error; if (debug_tweak_on("XFS_SCRUB_NO_KERNEL")) return false; if (debug_tweak_on("XFS_SCRUB_FORCE_REPAIR") && !injected) { - str_info(ctx, "XFS_SCRUB_FORCE_REPAIR", "Not supported."); - return false; + inject.fd = ctx->mnt_fd; + inject.errtag = XFS_ERRTAG_FORCE_SCRUB_REPAIR; + error = ioctl(ctx->mnt_fd, XFS_IOC_ERROR_INJECTION, &inject); + if (error == 0) + injected = true; } meta.sm_type = type; -- 2.47.2