xref: /linux/drivers/md/bcache/request.h (revision 498495dba268b20e8eadd7fe93c140c68b6cc9d2)
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		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	bypass:1;
21 		unsigned	writeback:1;
22 		unsigned	flush_journal:1;
23 		unsigned	csum:1;
24 
25 		unsigned	replace:1;
26 		unsigned	replace_collision:1;
27 
28 		unsigned	insert_data_done:1;
29 	};
30 	};
31 
32 	struct keylist		insert_keys;
33 	BKEY_PADDED(replace_key);
34 };
35 
36 unsigned bch_get_congested(struct cache_set *);
37 void bch_data_insert(struct closure *cl);
38 
39 void bch_cached_dev_request_init(struct cached_dev *dc);
40 void bch_flash_dev_request_init(struct bcache_device *d);
41 
42 extern struct kmem_cache *bch_search_cache, *bch_passthrough_cache;
43 
44 #endif /* _BCACHE_REQUEST_H_ */
45