summaryrefslogtreecommitdiff
path: root/drivers/md/bcache/request.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/md/bcache/request.h')
-rw-r--r--drivers/md/bcache/request.h73
1 files changed, 29 insertions, 44 deletions
diff --git a/drivers/md/bcache/request.h b/drivers/md/bcache/request.h
index 254d9ab5707c..46bbef00aebb 100644
--- a/drivers/md/bcache/request.h
+++ b/drivers/md/bcache/request.h
@@ -1,62 +1,47 @@
+/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _BCACHE_REQUEST_H_
#define _BCACHE_REQUEST_H_
-#include <linux/cgroup.h>
-
-struct search {
- /* Stack frame for bio_complete */
+struct data_insert_op {
struct closure cl;
+ struct cache_set *c;
+ struct bio *bio;
+ struct workqueue_struct *wq;
- struct bcache_device *d;
- struct task_struct *task;
+ unsigned int inode;
+ uint16_t write_point;
+ uint16_t write_prio;
+ blk_status_t status;
- struct bbio bio;
- struct bio *orig_bio;
- struct bio *cache_miss;
- unsigned cache_bio_sectors;
+ union {
+ uint16_t flags;
- unsigned recoverable:1;
- unsigned unaligned_bvec:1;
+ struct {
+ unsigned int bypass:1;
+ unsigned int writeback:1;
+ unsigned int flush_journal:1;
+ unsigned int csum:1;
- unsigned write:1;
- unsigned writeback:1;
+ unsigned int replace:1;
+ unsigned int replace_collision:1;
- /* IO error returned to s->bio */
- short error;
- unsigned long start_time;
+ unsigned int insert_data_done:1;
+ };
+ };
- /* Anything past op->keys won't get zeroed in do_bio_hook */
- struct btree_op op;
+ struct keylist insert_keys;
+ BKEY_PADDED(replace_key);
};
-void bch_cache_read_endio(struct bio *, int);
-int bch_get_congested(struct cache_set *);
-void bch_insert_data(struct closure *cl);
-void bch_btree_insert_async(struct closure *);
-void bch_cache_read_endio(struct bio *, int);
-
-void bch_open_buckets_free(struct cache_set *);
-int bch_open_buckets_alloc(struct cache_set *);
+unsigned int bch_get_congested(const struct cache_set *c);
+CLOSURE_CALLBACK(bch_data_insert);
void bch_cached_dev_request_init(struct cached_dev *dc);
-void bch_flash_dev_request_init(struct bcache_device *d);
+void cached_dev_submit_bio(struct bio *bio);
-extern struct kmem_cache *bch_search_cache, *bch_passthrough_cache;
-
-struct bch_cgroup {
-#ifdef CONFIG_CGROUP_BCACHE
- struct cgroup_subsys_state css;
-#endif
- /*
- * We subtract one from the index into bch_cache_modes[], so that
- * default == -1; this makes it so the rest match up with d->cache_mode,
- * and we use d->cache_mode if cgrp->cache_mode < 0
- */
- short cache_mode;
- bool verify;
- struct cache_stat_collector stats;
-};
+void bch_flash_dev_request_init(struct bcache_device *d);
+void flash_dev_submit_bio(struct bio *bio);
-struct bch_cgroup *bch_bio_to_cgroup(struct bio *bio);
+extern struct kmem_cache *bch_search_cache;
#endif /* _BCACHE_REQUEST_H_ */