summaryrefslogtreecommitdiff
path: root/c_src/libbcachefs/move_types.h
diff options
context:
space:
mode:
Diffstat (limited to 'c_src/libbcachefs/move_types.h')
-rw-r--r--c_src/libbcachefs/move_types.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/c_src/libbcachefs/move_types.h b/c_src/libbcachefs/move_types.h
new file mode 100644
index 00000000..e22841ef
--- /dev/null
+++ b/c_src/libbcachefs/move_types.h
@@ -0,0 +1,36 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _BCACHEFS_MOVE_TYPES_H
+#define _BCACHEFS_MOVE_TYPES_H
+
+#include "bbpos_types.h"
+
+struct bch_move_stats {
+ enum bch_data_type data_type;
+ struct bbpos pos;
+ char name[32];
+
+ atomic64_t keys_moved;
+ atomic64_t keys_raced;
+ atomic64_t sectors_seen;
+ atomic64_t sectors_moved;
+ atomic64_t sectors_raced;
+};
+
+struct move_bucket_key {
+ struct bpos bucket;
+ u8 gen;
+};
+
+struct move_bucket {
+ struct move_bucket_key k;
+ unsigned sectors;
+};
+
+struct move_bucket_in_flight {
+ struct move_bucket_in_flight *next;
+ struct rhash_head hash;
+ struct move_bucket bucket;
+ atomic_t count;
+};
+
+#endif /* _BCACHEFS_MOVE_TYPES_H */