1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _BCACHE_REQUEST_H_ 3 #define _BCACHE_REQUEST_H_ 4 5 struct data_insert_op { 6 struct closure cl; 7 struct cache_set *c; 8 struct bio *bio; 9 struct workqueue_struct *wq; 10 11 unsigned int inode; 12 uint16_t write_point; 13 uint16_t write_prio; 14 blk_status_t status; 15 16 union { 17 uint16_t flags; 18 19 struct { 20 unsigned int bypass:1; 21 unsigned int writeback:1; 22 unsigned int flush_journal:1; 23 unsigned int csum:1; 24 25 unsigned int replace:1; 26 unsigned int replace_collision:1; 27 28 unsigned int insert_data_done:1; 29 }; 30 }; 31 32 struct keylist insert_keys; 33 BKEY_PADDED(replace_key); 34 }; 35 36 unsigned int bch_get_congested(const struct cache_set *c); 37 void bch_data_insert(struct closure *cl); 38 39 void bch_cached_dev_request_init(struct cached_dev *dc); 40 blk_qc_t cached_dev_make_request(struct request_queue *q, struct bio *bio); 41 42 void bch_flash_dev_request_init(struct bcache_device *d); 43 blk_qc_t flash_dev_make_request(struct request_queue *q, struct bio *bio); 44 45 extern struct kmem_cache *bch_search_cache; 46 47 #endif /* _BCACHE_REQUEST_H_ */ 48