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