]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - drivers/md/bcache/request.h
Merge tag 'staging-3.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh...
[karo-tx-linux.git] / drivers / md / bcache / request.h
1 #ifndef _BCACHE_REQUEST_H_
2 #define _BCACHE_REQUEST_H_
3
4 #include <linux/cgroup.h>
5
6 struct 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         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 struct bch_cgroup {
45 #ifdef CONFIG_CGROUP_BCACHE
46         struct cgroup_subsys_state      css;
47 #endif
48         /*
49          * We subtract one from the index into bch_cache_modes[], so that
50          * default == -1; this makes it so the rest match up with d->cache_mode,
51          * and we use d->cache_mode if cgrp->cache_mode < 0
52          */
53         short                           cache_mode;
54         bool                            verify;
55         struct cache_stat_collector     stats;
56 };
57
58 struct bch_cgroup *bch_bio_to_cgroup(struct bio *bio);
59
60 #endif /* _BCACHE_REQUEST_H_ */