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