From 8bca55d1e75d23a6fbb942ebd0525e105b982d9b Mon Sep 17 00:00:00 2001 From: Jonas Malaco 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 Signed-off-by: David Sterba --- 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