btrfs-progs/0004-btrfs-progs-scrub-status-only-report-limits-if-at-le.patch
liuh c21de056a5 btrfs-progs: scrub status: only report limits if at least one exists
(cherry picked from commit 2e0c469c69b41de2d417987eb9ea312f84a3a4d9)
2024-06-11 09:08:22 +08:00

60 lines
2.0 KiB
Diff

From 8bca55d1e75d23a6fbb942ebd0525e105b982d9b Mon Sep 17 00:00:00 2001
From: Jonas Malaco <jonas@protocubo.io>
Date: Mon, 15 Jan 2024 08:17:38 -0300
Subject: [PATCH] btrfs-progs: scrub status: only report limits if at least one
exists
On multi-device filesystems, scrub status should report "some limits
set" if at least one device has a scrub limit set.
However, with btrfs-progs 6.6.3, this was being reported regardless of
whether any limit actually being set:
# sudo btrfs scrub limit /more/butter
UUID: 989129d9-c96f-4d52-9d68-cbb6d9b2c499
Id Limit Path
-- ----- ---------
1 - /dev/sdc1
2 - /dev/sdd1
# sudo btrfs scrub status /more/butter/
UUID: 989129d9-c96f-4d52-9d68-cbb6d9b2c499
Scrub started: Mon Jan 15 02:00:30 2024
Status: running
Duration: 6:23:19
Time left: 0:49:08
ETA: Mon Jan 15 09:12:57 2024
Total to scrub: 9.83TiB
Bytes scrubbed: 8.72TiB (88.64%)
Rate: 397.47MiB/s (some device limits set)
Error summary: no errors found
Fix it by only setting `limit` to the special marker value 1 if at least
one actual limit is found.
Pull-request: #733
Issue: #727
Fixes: 7e4a235df1ac ("btrfs-progs: scrub status: print device speed limit in status if set")
Signed-off-by: Jonas Malaco <jonas@protocubo.io>
Signed-off-by: David Sterba <dsterba@suse.com>
---
cmds/scrub.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cmds/scrub.c b/cmds/scrub.c
index acff1c0..3601713 100644
--- a/cmds/scrub.c
+++ b/cmds/scrub.c
@@ -387,7 +387,7 @@ static void print_fs_stat(struct scrub_fs_stat *fs_stat, int raw, u64 bytes_tota
* Limit for the whole filesystem stats does not make sense,
* but if there's any device with a limit then print it.
*/
- if (nr_devices != 1)
+ if (nr_devices != 1 && limit)
limit = 1;
print_scrub_summary(&fs_stat->p, &fs_stat->s, bytes_total, limit);
}
--
2.27.0