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