From: Darrick J. Wong Date: Wed, 1 Aug 2018 22:06:44 +0000 (-0500) Subject: xfs_scrub: allow developers to force repairs X-Git-Tag: v4.18.0-rc1~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7a9d1ac4b042a99f14f5535e945699c2d0a48882;p=thirdparty%2Fxfsprogs-dev.git 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 --- 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;