summaryrefslogtreecommitdiff
path: root/libbcachefs/rebalance_types.h
diff options
context:
space:
mode:
Diffstat (limited to 'libbcachefs/rebalance_types.h')
-rw-r--r--libbcachefs/rebalance_types.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/libbcachefs/rebalance_types.h b/libbcachefs/rebalance_types.h
new file mode 100644
index 00000000..aaf5b9ca
--- /dev/null
+++ b/libbcachefs/rebalance_types.h
@@ -0,0 +1,26 @@
+#ifndef _BCACHEFS_REBALANCE_TYPES_H
+#define _BCACHEFS_REBALANCE_TYPES_H
+
+#include "move_types.h"
+
+enum rebalance_state {
+ REBALANCE_WAITING,
+ REBALANCE_THROTTLED,
+ REBALANCE_RUNNING,
+};
+
+struct bch_fs_rebalance {
+ struct task_struct __rcu *thread;
+ struct bch_pd_controller pd;
+
+ atomic64_t work_unknown_dev;
+
+ enum rebalance_state state;
+ unsigned long throttled_until_iotime;
+ unsigned long throttled_until_cputime;
+ struct bch_move_stats move_stats;
+
+ unsigned enabled:1;
+};
+
+#endif /* _BCACHEFS_REBALANCE_TYPES_H */