| /* SPDX-License-Identifier: GPL-2.0 */ |
| #ifndef _BCACHEFS_REBALANCE_TYPES_H |
| #define _BCACHEFS_REBALANCE_TYPES_H |
| |
| #include "bbpos_types.h" |
| #include "move_types.h" |
| |
| #define BCH_REBALANCE_STATES() \ |
| x(waiting) \ |
| x(working) \ |
| x(scanning) |
| |
| enum bch_rebalance_states { |
| #define x(t) BCH_REBALANCE_##t, |
| BCH_REBALANCE_STATES() |
| #undef x |
| }; |
| |
| struct bch_fs_rebalance { |
| struct task_struct __rcu *thread; |
| struct bch_pd_controller pd; |
| |
| enum bch_rebalance_states state; |
| u64 wait_iotime_start; |
| u64 wait_iotime_end; |
| u64 wait_wallclock_start; |
| |
| struct bch_move_stats work_stats; |
| |
| struct bbpos scan_start; |
| struct bbpos scan_end; |
| struct bch_move_stats scan_stats; |
| |
| unsigned enabled:1; |
| }; |
| |
| #endif /* _BCACHEFS_REBALANCE_TYPES_H */ |