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: 7e4a235df1
("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>
This commit is contained in:
parent
631ee66639
commit
8bca55d1e7
|
@ -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,
|
* Limit for the whole filesystem stats does not make sense,
|
||||||
* but if there's any device with a limit then print it.
|
* but if there's any device with a limit then print it.
|
||||||
*/
|
*/
|
||||||
if (nr_devices != 1)
|
if (nr_devices != 1 && limit)
|
||||||
limit = 1;
|
limit = 1;
|
||||||
print_scrub_summary(&fs_stat->p, &fs_stat->s, bytes_total, limit);
|
print_scrub_summary(&fs_stat->p, &fs_stat->s, bytes_total, limit);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue