xref: /linux/fs/bcachefs/rebalance_format.h (revision 2622f290417001b0440f4a48dc6978f5f1e12a56)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _BCACHEFS_REBALANCE_FORMAT_H
3 #define _BCACHEFS_REBALANCE_FORMAT_H
4 
5 struct bch_extent_rebalance {
6 #if defined(__LITTLE_ENDIAN_BITFIELD)
7 	__u64			type:6,
8 				unused:3,
9 
10 				promote_target_from_inode:1,
11 				erasure_code_from_inode:1,
12 				data_checksum_from_inode:1,
13 				background_compression_from_inode:1,
14 				data_replicas_from_inode:1,
15 				background_target_from_inode:1,
16 
17 				promote_target:16,
18 				erasure_code:1,
19 				data_checksum:4,
20 				data_replicas:4,
21 				background_compression:8, /* enum bch_compression_opt */
22 				background_target:16;
23 #elif defined (__BIG_ENDIAN_BITFIELD)
24 	__u64			background_target:16,
25 				background_compression:8,
26 				data_replicas:4,
27 				data_checksum:4,
28 				erasure_code:1,
29 				promote_target:16,
30 
31 				background_target_from_inode:1,
32 				data_replicas_from_inode:1,
33 				background_compression_from_inode:1,
34 				data_checksum_from_inode:1,
35 				erasure_code_from_inode:1,
36 				promote_target_from_inode:1,
37 
38 				unused:3,
39 				type:6;
40 #endif
41 };
42 
43 /* subset of BCH_INODE_OPTS */
44 #define BCH_REBALANCE_OPTS()			\
45 	x(data_checksum)			\
46 	x(background_compression)		\
47 	x(data_replicas)			\
48 	x(promote_target)			\
49 	x(background_target)			\
50 	x(erasure_code)
51 
52 #endif /* _BCACHEFS_REBALANCE_FORMAT_H */
53 
54