diff --git a/fs/btrfs/scrub.c b/fs/btrfs/scrub.c
index 7c666517d3d33a4e2bdaac5c4eeaf88e11ac1ab8..72c2c093df4bb0507c9592bcedac621243d14a54 100644
--- a/fs/btrfs/scrub.c
+++ b/fs/btrfs/scrub.c
@@ -1730,7 +1730,7 @@ static int flush_scrub_stripes(struct scrub_ctx *sctx)
 				break;
 			}
 		}
-	} else {
+	} else if (!sctx->readonly) {
 		for (int i = 0; i < nr_stripes; i++) {
 			unsigned long repaired;