[PATCH] dm stats: report actual length for final partial stats row

From: Samuel Moelius

Date: Mon Jun 08 2026 - 20:33:09 EST


dm_stats_print() emits each row as "<start_sector>+<length> counters".
For a region whose length is not an exact multiple of the configured
step, the last row is shorter than step. The code already clips the row
end to s->end, but still prints step as the length.

Print end - start so the final partial row describes the range that is
actually covered by that row.

Assisted-by: Codex:gpt-5.5-cyber-preview
Signed-off-by: Samuel Moelius <sam.moelius@xxxxxxxxxxxxxxx>
---
drivers/md/dm-stats.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/md/dm-stats.c b/drivers/md/dm-stats.c
index c53cf07ab7b0..99e767f892a0 100644
--- a/drivers/md/dm-stats.c
+++ b/drivers/md/dm-stats.c
@@ -895,7 +895,7 @@ static int dm_stats_print(struct dm_stats *stats, int id,

DMEMIT("%llu+%llu %llu %llu %llu %llu %llu %llu %llu %llu %d %llu %llu %llu %llu",
(unsigned long long)start,
- (unsigned long long)step,
+ (unsigned long long)(end - start),
shared->tmp.ios[READ],
shared->tmp.merges[READ],
shared->tmp.sectors[READ],
--
2.43.0