at v3.13-rc2 55 lines 1.3 kB view raw
1#ifndef _BCACHE_REQUEST_H_ 2#define _BCACHE_REQUEST_H_ 3 4#include <linux/cgroup.h> 5 6struct data_insert_op { 7 struct closure cl; 8 struct cache_set *c; 9 struct bio *bio; 10 11 unsigned inode; 12 uint16_t write_point; 13 uint16_t write_prio; 14 short error; 15 16 unsigned bypass:1; 17 unsigned writeback:1; 18 unsigned flush_journal:1; 19 unsigned csum:1; 20 21 unsigned replace:1; 22 unsigned replace_collision:1; 23 24 unsigned insert_data_done:1; 25 26 /* Anything past this point won't get zeroed in search_alloc() */ 27 struct keylist insert_keys; 28 BKEY_PADDED(replace_key); 29}; 30 31unsigned bch_get_congested(struct cache_set *); 32void bch_data_insert(struct closure *cl); 33 34void bch_cached_dev_request_init(struct cached_dev *dc); 35void bch_flash_dev_request_init(struct bcache_device *d); 36 37extern struct kmem_cache *bch_search_cache, *bch_passthrough_cache; 38 39struct bch_cgroup { 40#ifdef CONFIG_CGROUP_BCACHE 41 struct cgroup_subsys_state css; 42#endif 43 /* 44 * We subtract one from the index into bch_cache_modes[], so that 45 * default == -1; this makes it so the rest match up with d->cache_mode, 46 * and we use d->cache_mode if cgrp->cache_mode < 0 47 */ 48 short cache_mode; 49 bool verify; 50 struct cache_stat_collector stats; 51}; 52 53struct bch_cgroup *bch_bio_to_cgroup(struct bio *bio); 54 55#endif /* _BCACHE_REQUEST_H_ */