xref: /linux/drivers/md/bcache/request.h (revision ca55b2fef3a9373fcfc30f82fd26bc7fccbda732)
1 #ifndef _BCACHE_REQUEST_H_
2 #define _BCACHE_REQUEST_H_
3 
4 struct data_insert_op {
5 	struct closure		cl;
6 	struct cache_set	*c;
7 	struct bio		*bio;
8 	struct workqueue_struct *wq;
9 
10 	unsigned		inode;
11 	uint16_t		write_point;
12 	uint16_t		write_prio;
13 	short			error;
14 
15 	union {
16 		uint16_t	flags;
17 
18 	struct {
19 		unsigned	bypass:1;
20 		unsigned	writeback:1;
21 		unsigned	flush_journal:1;
22 		unsigned	csum:1;
23 
24 		unsigned	replace:1;
25 		unsigned	replace_collision:1;
26 
27 		unsigned	insert_data_done:1;
28 	};
29 	};
30 
31 	struct keylist		insert_keys;
32 	BKEY_PADDED(replace_key);
33 };
34 
35 unsigned bch_get_congested(struct cache_set *);
36 void bch_data_insert(struct closure *cl);
37 
38 void bch_cached_dev_request_init(struct cached_dev *dc);
39 void bch_flash_dev_request_init(struct bcache_device *d);
40 
41 extern struct kmem_cache *bch_search_cache, *bch_passthrough_cache;
42 
43 #endif /* _BCACHE_REQUEST_H_ */
44