1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _BCACHEFS_SUPER_TYPES_H 3 #define _BCACHEFS_SUPER_TYPES_H 4 5 struct bch_sb_handle { 6 struct bch_sb *sb; 7 struct block_device *bdev; 8 char *sb_name; 9 struct bio *bio; 10 void *holder; 11 size_t buffer_size; 12 blk_mode_t mode; 13 unsigned have_layout:1; 14 unsigned have_bio:1; 15 unsigned fs_sb:1; 16 u64 seq; 17 }; 18 19 struct bch_devs_mask { 20 unsigned long d[BITS_TO_LONGS(BCH_SB_MEMBERS_MAX)]; 21 }; 22 23 struct bch_devs_list { 24 u8 nr; 25 u8 devs[BCH_BKEY_PTRS_MAX]; 26 }; 27 28 struct bch_member_cpu { 29 u64 nbuckets; /* device size */ 30 u16 first_bucket; /* index of first bucket used */ 31 u16 bucket_size; /* sectors */ 32 u16 group; 33 u8 state; 34 u8 discard; 35 u8 data_allowed; 36 u8 durability; 37 u8 freespace_initialized; 38 u8 valid; 39 }; 40 41 #endif /* _BCACHEFS_SUPER_TYPES_H */ 42