1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _BCACHEFS_REBALANCE_TYPES_H 3 #define _BCACHEFS_REBALANCE_TYPES_H 4 5 #include "bbpos_types.h" 6 #include "move_types.h" 7 8 #define BCH_REBALANCE_STATES() \ 9 x(waiting) \ 10 x(working) \ 11 x(scanning) 12 13 enum bch_rebalance_states { 14 #define x(t) BCH_REBALANCE_##t, 15 BCH_REBALANCE_STATES() 16 #undef x 17 }; 18 19 struct bch_fs_rebalance { 20 struct task_struct __rcu *thread; 21 struct bch_pd_controller pd; 22 23 enum bch_rebalance_states state; 24 u64 wait_iotime_start; 25 u64 wait_iotime_end; 26 u64 wait_wallclock_start; 27 28 struct bch_move_stats work_stats; 29 30 struct bbpos scan_start; 31 struct bbpos scan_end; 32 struct bch_move_stats scan_stats; 33 34 unsigned enabled:1; 35 }; 36 37 #endif /* _BCACHEFS_REBALANCE_TYPES_H */ 38