1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _BCACHEFS_MOVE_TYPES_H
3 #define _BCACHEFS_MOVE_TYPES_H
4 
5 #include "bbpos_types.h"
6 
7 struct bch_move_stats {
8 	enum bch_data_type	data_type;
9 	struct bbpos		pos;
10 	char			name[32];
11 
12 	atomic64_t		keys_moved;
13 	atomic64_t		keys_raced;
14 	atomic64_t		sectors_seen;
15 	atomic64_t		sectors_moved;
16 	atomic64_t		sectors_raced;
17 };
18 
19 struct move_bucket_key {
20 	struct bpos		bucket;
21 	u8			gen;
22 };
23 
24 struct move_bucket {
25 	struct move_bucket_key	k;
26 	unsigned		sectors;
27 };
28 
29 struct move_bucket_in_flight {
30 	struct move_bucket_in_flight *next;
31 	struct rhash_head	hash;
32 	struct move_bucket	bucket;
33 	atomic_t		count;
34 };
35 
36 #endif /* _BCACHEFS_MOVE_TYPES_H */
37