diff options
author | Stéphane Lesimple <stephane_btrfs@lesimple.fr> | 2018-07-04 21:20:14 +0200 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2018-08-06 15:03:23 +0200 |
commit | 078e9a1cc973e042ad8fde2d84e0db62fee9c45a (patch) | |
tree | a7eb3c003d64350e03076959a00c499843f6209d /check/mode-common.h | |
parent | 48a2818159792bdd1fcb98aab6203a1080d4c310 (diff) |
btrfs-progs: check: enhanced progress indicator
We reuse the task_position enum and task_ctx struct of the original progress
indicator, adding more values and fields for our needs.
Then add hooks in all steps of the check to properly record progress.
Here's how the output looks like on a 22 Tb 5-disk RAID1 FS:
Opening filesystem to check...
Checking filesystem on /dev/mapper/luks-ST10000VN0004-XXXXXXXX
UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
[1/7] checking extents (0:20:21 elapsed, 950958 items checked)
[2/7] checking root items (0:01:29 elapsed, 15121 items checked)
[3/7] checking free space cache (0:00:11 elapsed, 4928 items checked)
[4/7] checking fs roots (0:51:31 elapsed, 600892 items checked)
[5/7] checking csums (0:14:35 elapsed, 754522 items checked)
[6/7] checking root refs (0:00:00 elapsed, 232 items checked)
[7/7] checking quota groups skipped (not enabled on this FS)
found 5286458060800 bytes used, no error found
Signed-off-by: Stéphane Lesimple <stephane_btrfs@lesimple.fr>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'check/mode-common.h')
-rw-r--r-- | check/mode-common.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/check/mode-common.h b/check/mode-common.h index a4748578..6b05f8ba 100644 --- a/check/mode-common.h +++ b/check/mode-common.h @@ -38,6 +38,26 @@ struct node_refs { int full_backref[BTRFS_MAX_LEVEL]; }; +enum task_position { + TASK_ROOT_ITEMS, + TASK_EXTENTS, + TASK_FREE_SPACE, + TASK_FS_ROOTS, + TASK_CSUMS, + TASK_ROOT_REFS, + TASK_QGROUPS, + TASK_NOTHING, /* has to be the last element */ +}; + +struct task_ctx { + int progress_enabled; + enum task_position tp; + time_t start_time; + u64 item_count; + + struct task_info *info; +}; + extern u64 bytes_used; extern u64 total_csum_bytes; extern u64 total_btree_bytes; |