From: Darrick J. Wong <djwong@xxxxxxxxxx> Phase 2 of the xfs_scrub program calls the kernel to check the primary superblock before scanning the rest of the filesystem. Though doing so is a no-op now (since the primary super must pass all checks as a prerequisite for mounting), the goal of this code is to enable future kernel code to intercept an xfs_scrub run before it actually does anything. If this some day involves fixing the primary superblock, it seems reasonable to require that /all/ repairs complete successfully before moving on to the rest of the filesystem. Unfortunately, that's not what xfs_scrub does now -- primary super repairs that fail are theoretically deferred to phase 4! So make this mandatory. Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx> Reviewed-by: Christoph Hellwig <hch@xxxxxx> --- scrub/phase2.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scrub/phase2.c b/scrub/phase2.c index 80c77b287..2d49c604e 100644 --- a/scrub/phase2.c +++ b/scrub/phase2.c @@ -174,7 +174,8 @@ phase2_func( ret = scrub_primary_super(ctx, &alist); if (ret) goto out_wq; - ret = action_list_process_or_defer(ctx, 0, &alist); + ret = action_list_process(ctx, -1, &alist, + XRM_FINAL_WARNING | XRM_NOPROGRESS); if (ret) goto out_wq;