Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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
13enum bch_rebalance_states {
14#define x(t) BCH_REBALANCE_##t,
15 BCH_REBALANCE_STATES()
16#undef x
17};
18
19struct 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
35#endif /* _BCACHEFS_REBALANCE_TYPES_H */