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 bdev_handle *bdev_handle; 8 struct block_device *bdev; 9 char *sb_name; 10 struct bio *bio; 11 void *holder; 12 size_t buffer_size; 13 blk_mode_t mode; 14 unsigned have_layout:1; 15 unsigned have_bio:1; 16 unsigned fs_sb:1; 17 u64 seq; 18 }; 19 20 struct bch_devs_mask { 21 unsigned long d[BITS_TO_LONGS(BCH_SB_MEMBERS_MAX)]; 22 }; 23 24 struct bch_devs_list { 25 u8 nr; 26 u8 data[BCH_BKEY_PTRS_MAX]; 27 }; 28 29 struct bch_member_cpu { 30 u64 nbuckets; /* device size */ 31 u16 first_bucket; /* index of first bucket used */ 32 u16 bucket_size; /* sectors */ 33 u16 group; 34 u8 state; 35 u8 discard; 36 u8 data_allowed; 37 u8 durability; 38 u8 freespace_initialized; 39 u8 valid; 40 }; 41 42 #endif /* _BCACHEFS_SUPER_TYPES_H */ 43